omnis-key 0.1.0__tar.gz
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.
- omnis_key-0.1.0/MANIFEST.in +1 -0
- omnis_key-0.1.0/PKG-INFO +75 -0
- omnis_key-0.1.0/README.md +59 -0
- omnis_key-0.1.0/omnis_key/__init__.py +9 -0
- omnis_key-0.1.0/omnis_key/cli.py +104 -0
- omnis_key-0.1.0/omnis_key/engine/assets/baby-pulsar-omnis-suite.png +0 -0
- omnis_key-0.1.0/omnis_key/engine/assets/baby-pulsar-verified.png +0 -0
- omnis_key-0.1.0/omnis_key/engine/assets/mascot-rejected.png +0 -0
- omnis_key-0.1.0/omnis_key/engine/dist/.DS_Store +0 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/.DS_Store +0 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/audit/artifact.d.ts +2 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/audit/artifact.js +7 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/audit/canonicalize.d.ts +3 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/audit/canonicalize.js +23 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/audit/hash.d.ts +2 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/audit/hash.js +8 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/baseline/matchFirst.d.ts +2 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/baseline/matchFirst.js +76 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/baseline/util.d.ts +2 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/baseline/util.js +7 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/benchmark/cases.d.ts +2 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/benchmark/cases.js +56 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/benchmark/enterpriseTrust.d.ts +3 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/benchmark/enterpriseTrust.js +128 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/benchmark/run.d.ts +3 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/benchmark/run.js +75 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/benchmark/vantage.d.ts +3 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/benchmark/vantage.js +183 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/cli.d.ts +2 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/cli.js +823 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/engines/clockwork.d.ts +2 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/engines/clockwork.js +92 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/engines/echo.d.ts +2 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/engines/echo.js +80 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/engines/fossil.d.ts +2 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/engines/fossil.js +35 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/engines/gravity.d.ts +3 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/engines/gravity.js +68 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/engines/inquest.d.ts +2 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/engines/inquest.js +111 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/engines/latch.d.ts +2 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/engines/latch.js +95 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/engines/parallax.d.ts +2 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/engines/parallax.js +37 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/engines/prism.d.ts +10 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/engines/prism.js +232 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/engines/rift.d.ts +3 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/engines/rift.js +88 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/engines/scar.d.ts +2 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/engines/scar.js +47 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/engines/sentinel.d.ts +14 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/engines/sentinel.js +120 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/engines/static.d.ts +5 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/engines/static.js +155 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/engines/trial.d.ts +3 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/engines/trial.js +66 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/fusion/doctrine.d.ts +13 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/fusion/doctrine.js +63 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/index.d.ts +55 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/index.js +55 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/luna/launchAgent.d.ts +10 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/luna/launchAgent.js +97 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/luna/paths.d.ts +9 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/luna/paths.js +19 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/luna/standalone.d.ts +30 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/luna/standalone.js +482 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/adjacentRuntimes.d.ts +6 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/adjacentRuntimes.js +98 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/agentResponder.d.ts +9 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/agentResponder.js +208 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/agents.d.ts +10 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/agents.js +217 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/api.d.ts +21 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/api.js +547 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/appServer.d.ts +16 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/appServer.js +252 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/appState.d.ts +2 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/appState.js +197 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/bifrost.d.ts +7 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/bifrost.js +216 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/buildLoop.d.ts +6 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/buildLoop.js +251 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/chamber.d.ts +5 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/chamber.js +276 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/codexWorker.d.ts +41 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/codexWorker.js +451 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/controlRoom.d.ts +6 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/controlRoom.js +253 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/desktopShell.d.ts +4 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/desktopShell.js +933 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/directives.d.ts +9 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/directives.js +232 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/editor.d.ts +21 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/editor.js +188 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/events.d.ts +2 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/events.js +35 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/hardening.d.ts +2 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/hardening.js +121 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/inspect.d.ts +2 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/inspect.js +30 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/installPackage.d.ts +8 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/installPackage.js +250 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/lockdown.d.ts +4 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/lockdown.js +21 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/luna.d.ts +27 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/luna.js +446 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/memory.d.ts +3 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/memory.js +703 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/mobileShell.d.ts +4 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/mobileShell.js +380 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/modelGateway.d.ts +11 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/modelGateway.js +127 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/modelProviders.d.ts +23 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/modelProviders.js +394 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/modelRouter.d.ts +8 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/modelRouter.js +213 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/observe.d.ts +2 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/observe.js +49 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/pairing.d.ts +13 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/pairing.js +236 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/paths.d.ts +10 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/paths.js +25 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/projectIndex.d.ts +2 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/projectIndex.js +60 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/providerAdapters/kimi.d.ts +11 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/providerAdapters/kimi.js +104 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/providerAdapters/minimax.d.ts +11 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/providerAdapters/minimax.js +95 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/providerAdapters/ollama.d.ts +10 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/providerAdapters/ollama.js +79 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/providerAdapters/openai.d.ts +11 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/providerAdapters/openai.js +101 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/queue.d.ts +12 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/queue.js +190 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/registry.d.ts +7 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/registry.js +519 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/runtime.d.ts +15 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/runtime.js +164 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/runtimeEnv.d.ts +4 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/runtimeEnv.js +12 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/session.d.ts +2 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/session.js +17 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/souls.d.ts +9 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/souls.js +154 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/telegramRuntime.d.ts +24 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/telegramRuntime.js +139 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/vellum.d.ts +11 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/vellum.js +48 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/watch.d.ts +21 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/watch.js +48 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/workspaces.d.ts +6 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/omnis/workspaces.js +129 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/pipeline.d.ts +4 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/pipeline.js +77 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/products/dadJokes.d.ts +32 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/products/dadJokes.js +446 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/products/migrationIntelligence.d.ts +3 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/products/migrationIntelligence.js +797 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/products/oath.d.ts +2 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/products/oath.js +319 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/products/prospector.d.ts +2 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/products/prospector.js +193 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/products/prospectorCleanup.d.ts +4 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/products/prospectorCleanup.js +167 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/products/prospectorCompare.d.ts +2 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/products/prospectorCompare.js +193 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/products/prospectorMergeArchive.d.ts +7 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/products/prospectorMergeArchive.js +224 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/products/vantage.d.ts +2 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/products/vantage.js +614 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/products/vantageApply.d.ts +4 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/products/vantageApply.js +111 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/products/vantageRules.d.ts +3 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/products/vantageRules.js +422 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/products/vantageSupport.d.ts +29 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/products/vantageSupport.js +262 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/report/html.d.ts +6 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/report/html.js +154 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/types.d.ts +1827 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/types.js +1 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/validators/numeric.d.ts +8 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/validators/numeric.js +26 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/validators/sourcePriority.d.ts +11 -0
- omnis_key-0.1.0/omnis_key/engine/dist/src/validators/sourcePriority.js +39 -0
- omnis_key-0.1.0/omnis_key/engine/package.json +47 -0
- omnis_key-0.1.0/omnis_key/engine/ui/404.html +1 -0
- omnis_key-0.1.0/omnis_key/engine/ui/__next.__PAGE__.txt +9 -0
- omnis_key-0.1.0/omnis_key/engine/ui/__next._full.txt +22 -0
- omnis_key-0.1.0/omnis_key/engine/ui/__next._head.txt +6 -0
- omnis_key-0.1.0/omnis_key/engine/ui/__next._index.txt +7 -0
- omnis_key-0.1.0/omnis_key/engine/ui/__next._tree.txt +5 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_next/static/-mL5iaf1p4Q99r8NBGT-i/_buildManifest.js +11 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_next/static/-mL5iaf1p4Q99r8NBGT-i/_clientMiddlewareManifest.js +1 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_next/static/-mL5iaf1p4Q99r8NBGT-i/_ssgManifest.js +1 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_next/static/chunks/0.msad2f6dkzv.js +1 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_next/static/chunks/03~yq9q893hmn.js +1 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_next/static/chunks/0brq7e_hvlgfu.js +2 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_next/static/chunks/0b~.11~r.y9yy.js +1 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_next/static/chunks/0iq~clb90bd87.js +3 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_next/static/chunks/0mwhit9sd9oms.js +1 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_next/static/chunks/0q0otli5fs9nm.js +1 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_next/static/chunks/0wla9-11ef57m.css +1 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_next/static/chunks/0wrr-ov-s027z.js +31 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_next/static/chunks/11unif--rw5h8.css +2 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_next/static/chunks/15c.8_b0bsh6~.js +4 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_next/static/chunks/turbopack-09rk-gyr21uhf.js +1 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_next/static/media/4fa387ec64143e14-s.0.qu-9752pffj.woff2 +0 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_next/static/media/53b9e256198e5412-s.0-wfv7uh4i7h9.woff2 +0 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_next/static/media/5ce348bf30bf5439-s.0ee55_hj9qcer.woff2 +0 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_next/static/media/6306c77e7c8268e4-s.0mao5jbfbduzp.woff2 +0 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_next/static/media/7178b3e590c64307-s.0nx0ww8fni_q3.woff2 +0 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_next/static/media/797e433ab948586e-s.p.09zddjkbdep5a.woff2 +0 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_next/static/media/7d817b4c03b0c5f1-s.0uzt.a6d44yda.woff2 +0 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_next/static/media/8a480f0b521d4e75-s.0jzbimsg8vl84.woff2 +0 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_next/static/media/bbc41e54d2fcbd21-s.0mvwgmnhv29no.woff2 +0 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_next/static/media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2 +0 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_next/static/media/fef07dbb0973bf53-s.12tyk43_3sh9u.woff2 +0 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_not-found/__next._full.txt +18 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_not-found/__next._head.txt +6 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_not-found/__next._index.txt +7 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_not-found/__next._not-found.__PAGE__.txt +5 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_not-found/__next._not-found.txt +5 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_not-found/__next._tree.txt +3 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_not-found.html +1 -0
- omnis_key-0.1.0/omnis_key/engine/ui/_not-found.txt +18 -0
- omnis_key-0.1.0/omnis_key/engine/ui/icon.svg +26 -0
- omnis_key-0.1.0/omnis_key/engine/ui/index.html +1 -0
- omnis_key-0.1.0/omnis_key/engine/ui/index.txt +22 -0
- omnis_key-0.1.0/omnis_key/engine/ui/placeholder-logo.svg +1 -0
- omnis_key-0.1.0/omnis_key/engine/ui/placeholder-user.jpg +0 -0
- omnis_key-0.1.0/omnis_key/engine/ui/placeholder.jpg +0 -0
- omnis_key-0.1.0/omnis_key/engine/ui/placeholder.svg +1 -0
- omnis_key-0.1.0/omnis_key.egg-info/PKG-INFO +75 -0
- omnis_key-0.1.0/omnis_key.egg-info/SOURCES.txt +237 -0
- omnis_key-0.1.0/omnis_key.egg-info/dependency_links.txt +1 -0
- omnis_key-0.1.0/omnis_key.egg-info/entry_points.txt +2 -0
- omnis_key-0.1.0/omnis_key.egg-info/top_level.txt +1 -0
- omnis_key-0.1.0/pyproject.toml +32 -0
- omnis_key-0.1.0/setup.cfg +4 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
graft omnis_key/engine
|
omnis_key-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: omnis-key
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: OMNIS KEY — JourdanLabs' local-first, receipt-backed engineering workbench (VANTAGE, CADMUS, PROSPECTOR, LUNA), runnable from a pip install.
|
|
5
|
+
Author: JourdanLabs
|
|
6
|
+
License: UNLICENSED
|
|
7
|
+
Project-URL: Homepage, https://github.com/jourdanlabs/omnis
|
|
8
|
+
Keywords: omnis,code-audit,verification,governed,jourdanlabs
|
|
9
|
+
Classifier: Programming Language :: Python :: 3
|
|
10
|
+
Classifier: Operating System :: MacOS
|
|
11
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
12
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Requires-Python: >=3.8
|
|
15
|
+
Description-Content-Type: text/markdown
|
|
16
|
+
|
|
17
|
+
# omnis-key
|
|
18
|
+
|
|
19
|
+
**OMNIS KEY** — JourdanLabs' local-first, receipt-backed engineering workbench,
|
|
20
|
+
runnable from a `pip install`.
|
|
21
|
+
|
|
22
|
+
OMNIS runs entirely on your machine. Its deterministic engines —
|
|
23
|
+
**VANTAGE** (code audit), **CADMUS** (spec creation), **PROSPECTOR** (estate
|
|
24
|
+
discovery), and **LUNA** (persistent, receipt-backed memory) — are governed by
|
|
25
|
+
the **BIFROST** gate and a hash-chained **LUNA** ledger, so every action carries
|
|
26
|
+
an auditable receipt. *Receipts over fluency.*
|
|
27
|
+
|
|
28
|
+
## Why pip
|
|
29
|
+
|
|
30
|
+
This package exists so OMNIS can be procured and vetted through the standard
|
|
31
|
+
Python supply chain (`pip install`) in environments that prefer it. The engine
|
|
32
|
+
is bundled as audited JavaScript and launched through a local Node.js runtime.
|
|
33
|
+
|
|
34
|
+
## Install
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
pip install omnis-key
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**Requires Node.js ≥ 18** on your `PATH` (https://nodejs.org). The wheel bundles
|
|
41
|
+
the OMNIS engine; Node runs it locally — nothing is sent off the machine unless
|
|
42
|
+
you explicitly configure a cloud model lane.
|
|
43
|
+
|
|
44
|
+
## Run
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
omnis # full workbench; agents can use cloud LLMs if keys are set
|
|
48
|
+
omnis --lockdown # air-gapped: every cloud model lane is refused (data can't leave)
|
|
49
|
+
omnis --no-agents # workbench only: deterministic tools, no agent chamber
|
|
50
|
+
omnis --port 8790 --data-dir ~/.omnis/workspace
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
`omnis` starts a local server on `127.0.0.1` and opens the workbench in your
|
|
54
|
+
browser. Workspace data + the LUNA ledger live under `~/.omnis/` by default.
|
|
55
|
+
|
|
56
|
+
## Air-gapped / regulated environments
|
|
57
|
+
|
|
58
|
+
`--lockdown` disables **every** network model lane at the adapter call site (not
|
|
59
|
+
just a status flag), leaving the local and manual lanes only. The deterministic
|
|
60
|
+
workbench works fully offline. Combine with `--no-agents` for a pure,
|
|
61
|
+
no-model-lanes build.
|
|
62
|
+
|
|
63
|
+
## Build from source
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# from the repo root
|
|
67
|
+
npm run build # build the engine
|
|
68
|
+
npm --prefix desktop/renderer run build # build the UI (optional)
|
|
69
|
+
pypi/build_wheel.sh # bundle engine + build wheel/sdist
|
|
70
|
+
pip install pypi/dist/omnis_key-*.whl
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Publishing to PyPI (`twine upload dist/*`) requires a JourdanLabs PyPI API token.
|
|
74
|
+
|
|
75
|
+
🐦⬛ + 🔑
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# omnis-key
|
|
2
|
+
|
|
3
|
+
**OMNIS KEY** — JourdanLabs' local-first, receipt-backed engineering workbench,
|
|
4
|
+
runnable from a `pip install`.
|
|
5
|
+
|
|
6
|
+
OMNIS runs entirely on your machine. Its deterministic engines —
|
|
7
|
+
**VANTAGE** (code audit), **CADMUS** (spec creation), **PROSPECTOR** (estate
|
|
8
|
+
discovery), and **LUNA** (persistent, receipt-backed memory) — are governed by
|
|
9
|
+
the **BIFROST** gate and a hash-chained **LUNA** ledger, so every action carries
|
|
10
|
+
an auditable receipt. *Receipts over fluency.*
|
|
11
|
+
|
|
12
|
+
## Why pip
|
|
13
|
+
|
|
14
|
+
This package exists so OMNIS can be procured and vetted through the standard
|
|
15
|
+
Python supply chain (`pip install`) in environments that prefer it. The engine
|
|
16
|
+
is bundled as audited JavaScript and launched through a local Node.js runtime.
|
|
17
|
+
|
|
18
|
+
## Install
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
pip install omnis-key
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
**Requires Node.js ≥ 18** on your `PATH` (https://nodejs.org). The wheel bundles
|
|
25
|
+
the OMNIS engine; Node runs it locally — nothing is sent off the machine unless
|
|
26
|
+
you explicitly configure a cloud model lane.
|
|
27
|
+
|
|
28
|
+
## Run
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
omnis # full workbench; agents can use cloud LLMs if keys are set
|
|
32
|
+
omnis --lockdown # air-gapped: every cloud model lane is refused (data can't leave)
|
|
33
|
+
omnis --no-agents # workbench only: deterministic tools, no agent chamber
|
|
34
|
+
omnis --port 8790 --data-dir ~/.omnis/workspace
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
`omnis` starts a local server on `127.0.0.1` and opens the workbench in your
|
|
38
|
+
browser. Workspace data + the LUNA ledger live under `~/.omnis/` by default.
|
|
39
|
+
|
|
40
|
+
## Air-gapped / regulated environments
|
|
41
|
+
|
|
42
|
+
`--lockdown` disables **every** network model lane at the adapter call site (not
|
|
43
|
+
just a status flag), leaving the local and manual lanes only. The deterministic
|
|
44
|
+
workbench works fully offline. Combine with `--no-agents` for a pure,
|
|
45
|
+
no-model-lanes build.
|
|
46
|
+
|
|
47
|
+
## Build from source
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
# from the repo root
|
|
51
|
+
npm run build # build the engine
|
|
52
|
+
npm --prefix desktop/renderer run build # build the UI (optional)
|
|
53
|
+
pypi/build_wheel.sh # bundle engine + build wheel/sdist
|
|
54
|
+
pip install pypi/dist/omnis_key-*.whl
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Publishing to PyPI (`twine upload dist/*`) requires a JourdanLabs PyPI API token.
|
|
58
|
+
|
|
59
|
+
🐦⬛ + 🔑
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"""OMNIS KEY — local-first, receipt-backed engineering workbench (pip-installable).
|
|
2
|
+
|
|
3
|
+
The deterministic engine (VANTAGE / CADMUS / PROSPECTOR / LUNA, the BIFROST gate,
|
|
4
|
+
and the LUNA hash-chained ledger) is bundled as JavaScript under ``engine/`` and
|
|
5
|
+
launched through a local Node.js runtime. ``omnis`` (the console entry point)
|
|
6
|
+
starts the local server and opens the workbench in your browser.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
__version__ = "0.1.0"
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"""Console launcher for OMNIS KEY.
|
|
2
|
+
|
|
3
|
+
Finds a local Node.js runtime, starts the bundled OMNIS engine on a local port,
|
|
4
|
+
and opens the workbench. Flags mirror the desktop builds:
|
|
5
|
+
|
|
6
|
+
omnis cloud-capable (agents can call cloud LLMs if keys are set)
|
|
7
|
+
omnis --lockdown air-gapped: every network model lane is refused
|
|
8
|
+
omnis --no-agents workbench only: no agent chamber, deterministic tools only
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from __future__ import annotations
|
|
12
|
+
|
|
13
|
+
import argparse
|
|
14
|
+
import os
|
|
15
|
+
import shutil
|
|
16
|
+
import socket
|
|
17
|
+
import subprocess
|
|
18
|
+
import sys
|
|
19
|
+
import time
|
|
20
|
+
import webbrowser
|
|
21
|
+
from pathlib import Path
|
|
22
|
+
|
|
23
|
+
ENGINE_DIR = Path(__file__).resolve().parent / "engine"
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def _find_node() -> str:
|
|
27
|
+
node = shutil.which("node")
|
|
28
|
+
if not node:
|
|
29
|
+
sys.exit(
|
|
30
|
+
"OMNIS requires Node.js (>= 18) on your PATH.\n"
|
|
31
|
+
"Install it from https://nodejs.org and run `omnis` again."
|
|
32
|
+
)
|
|
33
|
+
return node
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def _free_port(preferred: int = 8790) -> int:
|
|
37
|
+
port = preferred
|
|
38
|
+
while True:
|
|
39
|
+
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
|
|
40
|
+
if sock.connect_ex(("127.0.0.1", port)) != 0:
|
|
41
|
+
return port
|
|
42
|
+
port += 1
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def main() -> None:
|
|
46
|
+
parser = argparse.ArgumentParser(prog="omnis", description="OMNIS KEY — local engineering workbench.")
|
|
47
|
+
parser.add_argument("--port", type=int, default=0, help="port to serve on (0 = auto-pick)")
|
|
48
|
+
parser.add_argument(
|
|
49
|
+
"--data-dir",
|
|
50
|
+
default=str(Path.home() / ".omnis" / "workspace"),
|
|
51
|
+
help="where the workspace + LUNA ledger live",
|
|
52
|
+
)
|
|
53
|
+
parser.add_argument("--lockdown", action="store_true", help="air-gapped: disable all cloud model lanes")
|
|
54
|
+
parser.add_argument("--no-agents", action="store_true", help="workbench only: hide the agent chamber")
|
|
55
|
+
parser.add_argument("--no-browser", action="store_true", help="do not open a browser window")
|
|
56
|
+
args = parser.parse_args()
|
|
57
|
+
|
|
58
|
+
node = _find_node()
|
|
59
|
+
cli_js = ENGINE_DIR / "dist" / "src" / "cli.js"
|
|
60
|
+
if not cli_js.exists():
|
|
61
|
+
sys.exit(
|
|
62
|
+
f"OMNIS engine not found at {cli_js}.\n"
|
|
63
|
+
"This wheel was built without the engine bundled (run pypi/build_wheel.sh)."
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
data_dir = Path(args.data_dir).expanduser()
|
|
67
|
+
data_dir.mkdir(parents=True, exist_ok=True)
|
|
68
|
+
port = args.port or _free_port()
|
|
69
|
+
|
|
70
|
+
env = dict(os.environ)
|
|
71
|
+
if args.lockdown:
|
|
72
|
+
env["OMNIS_LOCKDOWN"] = "1"
|
|
73
|
+
if args.no_agents:
|
|
74
|
+
env["OMNIS_NO_AGENTS"] = "1"
|
|
75
|
+
|
|
76
|
+
ui_dir = ENGINE_DIR / "ui"
|
|
77
|
+
open_path = "/desktop"
|
|
78
|
+
if (ui_dir / "index.html").exists():
|
|
79
|
+
env["OMNIS_UI_DIR"] = str(ui_dir)
|
|
80
|
+
open_path = "/"
|
|
81
|
+
|
|
82
|
+
url = f"http://127.0.0.1:{port}{open_path}"
|
|
83
|
+
print(f"OMNIS KEY → {url} (data: {data_dir})")
|
|
84
|
+
if args.lockdown:
|
|
85
|
+
print(" mode: air-gapped (cloud model lanes disabled)")
|
|
86
|
+
if args.no_agents:
|
|
87
|
+
print(" mode: workbench (no agent chamber)")
|
|
88
|
+
|
|
89
|
+
proc = subprocess.Popen(
|
|
90
|
+
[node, str(cli_js), "omnis", "app", str(data_dir), str(port)],
|
|
91
|
+
cwd=str(ENGINE_DIR),
|
|
92
|
+
env=env,
|
|
93
|
+
)
|
|
94
|
+
try:
|
|
95
|
+
if not args.no_browser:
|
|
96
|
+
time.sleep(1.5)
|
|
97
|
+
webbrowser.open(url)
|
|
98
|
+
proc.wait()
|
|
99
|
+
except KeyboardInterrupt:
|
|
100
|
+
proc.terminate()
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
if __name__ == "__main__":
|
|
104
|
+
main()
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export function canonicalize(value) {
|
|
2
|
+
return JSON.stringify(sortValue(value));
|
|
3
|
+
}
|
|
4
|
+
export function sortValue(value) {
|
|
5
|
+
if (Array.isArray(value)) {
|
|
6
|
+
return value.map(sortValue);
|
|
7
|
+
}
|
|
8
|
+
if (value !== null && typeof value === "object") {
|
|
9
|
+
const input = value;
|
|
10
|
+
const output = {};
|
|
11
|
+
for (const key of Object.keys(input).sort()) {
|
|
12
|
+
const item = input[key];
|
|
13
|
+
if (item !== undefined) {
|
|
14
|
+
output[key] = sortValue(item);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return output;
|
|
18
|
+
}
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
export function canonicalJson(value) {
|
|
22
|
+
return `${JSON.stringify(sortValue(value), null, 2)}\n`;
|
|
23
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { canonicalize } from "./canonicalize.js";
|
|
3
|
+
export function hashCanonical(value) {
|
|
4
|
+
return createHash("sha256").update(canonicalize(value)).digest("hex");
|
|
5
|
+
}
|
|
6
|
+
export function shortHash(value) {
|
|
7
|
+
return hashCanonical(value).slice(0, 12);
|
|
8
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { attachBaselineHash } from "./util.js";
|
|
2
|
+
const STOPWORDS = new Set(["a", "an", "and", "as", "at", "by", "for", "from", "in", "is", "of", "on", "or", "the", "to", "with"]);
|
|
3
|
+
export function runMatchFirstBaseline(input) {
|
|
4
|
+
if (!Array.isArray(input.records) || input.records.length === 0) {
|
|
5
|
+
return attachBaselineHash({
|
|
6
|
+
status: "ABSTAIN",
|
|
7
|
+
selected_signature: null,
|
|
8
|
+
support_packet_ids: [],
|
|
9
|
+
reasons: ["no_records"],
|
|
10
|
+
overlap_score: 0
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
const records = [...input.records].sort((a, b) => `${a.source_id}:${a.timestamp}:${a.text}`.localeCompare(`${b.source_id}:${b.timestamp}:${b.text}`));
|
|
14
|
+
const identifiers = records.map((record) => extractIdentifier(record.text)).filter((value) => value !== null);
|
|
15
|
+
const names = records.map((record) => extractName(record.text)).filter((value) => value !== null);
|
|
16
|
+
const commonIdentifier = mostCommon(identifiers);
|
|
17
|
+
const commonName = mostCommon(names);
|
|
18
|
+
const overlap = averagePairwiseOverlap(records.map((record) => terms(record.text)));
|
|
19
|
+
const support_packet_ids = records.map((_, index) => `packet_${String(index + 1).padStart(3, "0")}`);
|
|
20
|
+
const reasons = [];
|
|
21
|
+
if (commonIdentifier) {
|
|
22
|
+
reasons.push(`identifier_agreement:${commonIdentifier}`);
|
|
23
|
+
}
|
|
24
|
+
if (commonName) {
|
|
25
|
+
reasons.push(`name_anchor:${commonName}`);
|
|
26
|
+
}
|
|
27
|
+
reasons.push(`token_overlap:${overlap.toFixed(3)}`);
|
|
28
|
+
const approve = (commonIdentifier !== null && support_packet_ids.length >= 2) || (commonName !== null && overlap >= 0.58);
|
|
29
|
+
return attachBaselineHash({
|
|
30
|
+
status: approve ? "APPROVED" : "ABSTAIN",
|
|
31
|
+
selected_signature: commonName && commonIdentifier ? `${commonName}#${commonIdentifier}` : commonName ?? commonIdentifier,
|
|
32
|
+
support_packet_ids: approve ? support_packet_ids : [],
|
|
33
|
+
reasons,
|
|
34
|
+
overlap_score: Number(overlap.toFixed(6))
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
function extractIdentifier(text) {
|
|
38
|
+
return text.match(/\b(?:identifier|id|ein|ssn|parcel_id|property_id)\s*[:=]\s*([A-Za-z0-9._-]+)/i)?.[1]?.toLowerCase() ?? null;
|
|
39
|
+
}
|
|
40
|
+
function extractName(text) {
|
|
41
|
+
return (text
|
|
42
|
+
.match(/\b(?:entity|name|company|person|property)\s*[:=]\s*([^;,\n]+)/i)?.[1]
|
|
43
|
+
?.trim()
|
|
44
|
+
.toLowerCase()
|
|
45
|
+
.replace(/\s+/g, " ") ?? null);
|
|
46
|
+
}
|
|
47
|
+
function terms(text) {
|
|
48
|
+
const values = text.toLowerCase().match(/[a-z0-9][a-z0-9._-]*/g) ?? [];
|
|
49
|
+
return new Set(values.filter((value) => value.length > 1 && !STOPWORDS.has(value)));
|
|
50
|
+
}
|
|
51
|
+
function averagePairwiseOverlap(termSets) {
|
|
52
|
+
if (termSets.length < 2) {
|
|
53
|
+
return termSets.length === 1 ? 1 : 0;
|
|
54
|
+
}
|
|
55
|
+
const scores = [];
|
|
56
|
+
for (let left = 0; left < termSets.length; left += 1) {
|
|
57
|
+
for (let right = left + 1; right < termSets.length; right += 1) {
|
|
58
|
+
const leftSet = termSets[left];
|
|
59
|
+
const rightSet = termSets[right];
|
|
60
|
+
if (!leftSet || !rightSet) {
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
const intersection = [...leftSet].filter((term) => rightSet.has(term)).length;
|
|
64
|
+
const union = new Set([...leftSet, ...rightSet]).size;
|
|
65
|
+
scores.push(union === 0 ? 0 : intersection / union);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return scores.reduce((sum, score) => sum + score, 0) / scores.length;
|
|
69
|
+
}
|
|
70
|
+
function mostCommon(values) {
|
|
71
|
+
const counts = new Map();
|
|
72
|
+
for (const value of values) {
|
|
73
|
+
counts.set(value, (counts.get(value) ?? 0) + 1);
|
|
74
|
+
}
|
|
75
|
+
return [...counts.entries()].sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]))[0]?.[0] ?? null;
|
|
76
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export const DEFAULT_BENCHMARK_CASES = [
|
|
2
|
+
{
|
|
3
|
+
case_id: "clean_approval",
|
|
4
|
+
fixture: "simple-match.json",
|
|
5
|
+
expectation: "mirrorverse_should_approve",
|
|
6
|
+
description: "Two independent sources agree without disqualifiers."
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
case_id: "status_trap",
|
|
10
|
+
fixture: "match-first-trap.json",
|
|
11
|
+
expectation: "mirrorverse_should_reject",
|
|
12
|
+
description: "Strong identifier match hides mutually exclusive status claims."
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
case_id: "duplicate_origin_laundering",
|
|
16
|
+
fixture: "duplicate-laundering.json",
|
|
17
|
+
expectation: "mirrorverse_should_block",
|
|
18
|
+
description: "Two surface sources share one explicit origin lineage."
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
case_id: "fingerprint_laundering",
|
|
22
|
+
fixture: "fingerprint-laundering.json",
|
|
23
|
+
expectation: "mirrorverse_should_block",
|
|
24
|
+
description: "Two copied packets omit origin metadata but share claim/text fingerprints."
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
case_id: "numeric_conflict",
|
|
28
|
+
fixture: "numeric-conflict.json",
|
|
29
|
+
expectation: "mirrorverse_should_reject",
|
|
30
|
+
description: "Identity agreement hides incompatible numeric claims."
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
case_id: "numeric_tolerance_brittle",
|
|
34
|
+
fixture: "numeric-tolerance-brittle.json",
|
|
35
|
+
expectation: "mirrorverse_should_block",
|
|
36
|
+
description: "Candidate survives STATIC only because numeric tolerance is permissive."
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
case_id: "parallax_shadow",
|
|
40
|
+
fixture: "parallax-shadow.json",
|
|
41
|
+
expectation: "mirrorverse_should_block",
|
|
42
|
+
description: "Certified winner has a wounded same-name material-signature shadow."
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
case_id: "stale_evidence",
|
|
46
|
+
fixture: "stale-evidence.json",
|
|
47
|
+
expectation: "mirrorverse_should_block",
|
|
48
|
+
description: "Otherwise valid proof is stale at decision time."
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
case_id: "predicate_stale_claim",
|
|
52
|
+
fixture: "predicate-stale-claim.json",
|
|
53
|
+
expectation: "mirrorverse_should_block",
|
|
54
|
+
description: "Packet is globally fresh, but a predicate-specific claim half-life has expired."
|
|
55
|
+
}
|
|
56
|
+
];
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
import { readFileSync } from "node:fs";
|
|
3
|
+
import { hashCanonical, shortHash } from "../audit/hash.js";
|
|
4
|
+
import { runFinal } from "../pipeline.js";
|
|
5
|
+
export const ENTERPRISE_TRUST_CASES = [
|
|
6
|
+
{
|
|
7
|
+
case_id: "clean_enterprise_approval",
|
|
8
|
+
fixture: "simple-match.json",
|
|
9
|
+
workflow: "knowledge",
|
|
10
|
+
risk: "low",
|
|
11
|
+
expected_gate: "APPROVED",
|
|
12
|
+
failure_mode: "none",
|
|
13
|
+
description: "Clean multi-source evidence should release."
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
case_id: "audit_identifier_conflict",
|
|
17
|
+
fixture: "contradiction.json",
|
|
18
|
+
workflow: "audit",
|
|
19
|
+
risk: "critical",
|
|
20
|
+
expected_gate: "REJECTED",
|
|
21
|
+
failure_mode: "contradiction",
|
|
22
|
+
description: "Conflicting identifiers should block an audit conclusion."
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
case_id: "finance_ambiguous_counterparties",
|
|
26
|
+
fixture: "ambiguous-survivors.json",
|
|
27
|
+
workflow: "finance",
|
|
28
|
+
risk: "high",
|
|
29
|
+
expected_gate: "ABSTAIN",
|
|
30
|
+
failure_mode: "ambiguity",
|
|
31
|
+
description: "Incompatible surviving entities should force abstention."
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
case_id: "migration_brittle_keystone",
|
|
35
|
+
fixture: "brittle-evidence.json",
|
|
36
|
+
workflow: "migration",
|
|
37
|
+
risk: "high",
|
|
38
|
+
expected_gate: "ABSTAIN",
|
|
39
|
+
failure_mode: "brittle_evidence",
|
|
40
|
+
description: "A migration answer that collapses when one source is removed should not ship."
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
case_id: "knowledge_stale_claim",
|
|
44
|
+
fixture: "stale-evidence.json",
|
|
45
|
+
workflow: "knowledge",
|
|
46
|
+
risk: "medium",
|
|
47
|
+
expected_gate: "ABSTAIN",
|
|
48
|
+
failure_mode: "stale_evidence",
|
|
49
|
+
description: "Expired support should block release."
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
case_id: "audit_laundered_sources",
|
|
53
|
+
fixture: "duplicate-laundering.json",
|
|
54
|
+
workflow: "audit",
|
|
55
|
+
risk: "high",
|
|
56
|
+
expected_gate: "ABSTAIN",
|
|
57
|
+
failure_mode: "laundered_evidence",
|
|
58
|
+
description: "Two citations with one origin should not satisfy independent proof."
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
case_id: "finance_source_priority_conflict",
|
|
62
|
+
fixture: "source-priority-conflict.json",
|
|
63
|
+
workflow: "finance",
|
|
64
|
+
risk: "high",
|
|
65
|
+
expected_gate: "ABSTAIN",
|
|
66
|
+
failure_mode: "priority_conflict",
|
|
67
|
+
description: "Official and lower-priority classifications in conflict should block release."
|
|
68
|
+
}
|
|
69
|
+
];
|
|
70
|
+
export function runEnterpriseTrustBenchmark(fixturesRoot) {
|
|
71
|
+
const results = ENTERPRISE_TRUST_CASES.map((benchmarkCase) => runEnterpriseTrustCase(fixturesRoot, benchmarkCase));
|
|
72
|
+
const summary = {
|
|
73
|
+
total_cases: results.length,
|
|
74
|
+
clarion_wins: results.filter((result) => result.outcome === "clarion_win").length,
|
|
75
|
+
baseline_ties: results.filter((result) => result.outcome === "baseline_tie").length,
|
|
76
|
+
clarion_needs_work: results.filter((result) => result.outcome === "clarion_needs_work").length,
|
|
77
|
+
blocked_risky_cases: results.filter((result) => result.expected_gate !== "APPROVED" && result.clarion_status !== "APPROVED").length,
|
|
78
|
+
approved_clean_cases: results.filter((result) => result.expected_gate === "APPROVED" && result.clarion_status === "APPROVED").length
|
|
79
|
+
};
|
|
80
|
+
const withoutHash = {
|
|
81
|
+
run_id: `enterprise_trust_${shortHash({ fixturesRoot, results, summary })}`,
|
|
82
|
+
fixtures_root: fixturesRoot,
|
|
83
|
+
results,
|
|
84
|
+
summary
|
|
85
|
+
};
|
|
86
|
+
return {
|
|
87
|
+
...withoutHash,
|
|
88
|
+
audit_hash: hashCanonical(withoutHash)
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
function runEnterpriseTrustCase(fixturesRoot, benchmarkCase) {
|
|
92
|
+
const input = JSON.parse(readFileSync(join(fixturesRoot, benchmarkCase.fixture), "utf8"));
|
|
93
|
+
const final = runFinal(input);
|
|
94
|
+
const outcome = classify(benchmarkCase, final.status);
|
|
95
|
+
return {
|
|
96
|
+
case_id: benchmarkCase.case_id,
|
|
97
|
+
fixture: benchmarkCase.fixture,
|
|
98
|
+
workflow: benchmarkCase.workflow,
|
|
99
|
+
risk: benchmarkCase.risk,
|
|
100
|
+
expected_gate: benchmarkCase.expected_gate,
|
|
101
|
+
clarion_status: final.status,
|
|
102
|
+
fluent_baseline_status: "APPROVED",
|
|
103
|
+
outcome,
|
|
104
|
+
lesson: lessonFor(benchmarkCase, final.status, outcome),
|
|
105
|
+
proof_packet_count: final.proof_packet_ids.length,
|
|
106
|
+
veto_count: final.veto_summary.length,
|
|
107
|
+
uncertainty_count: final.uncertainty_summary.length,
|
|
108
|
+
clarion_audit_hash: final.audit_hash
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function classify(benchmarkCase, status) {
|
|
112
|
+
if (status === benchmarkCase.expected_gate && status === "APPROVED") {
|
|
113
|
+
return "baseline_tie";
|
|
114
|
+
}
|
|
115
|
+
if (status === benchmarkCase.expected_gate) {
|
|
116
|
+
return "clarion_win";
|
|
117
|
+
}
|
|
118
|
+
return "clarion_needs_work";
|
|
119
|
+
}
|
|
120
|
+
function lessonFor(benchmarkCase, status, outcome) {
|
|
121
|
+
if (outcome === "clarion_win") {
|
|
122
|
+
return `CLARION blocked fluent enterprise release for ${benchmarkCase.failure_mode}: ${benchmarkCase.description}`;
|
|
123
|
+
}
|
|
124
|
+
if (outcome === "baseline_tie") {
|
|
125
|
+
return `Clean evidence released: ${benchmarkCase.description}`;
|
|
126
|
+
}
|
|
127
|
+
return `Inspect gate doctrine: expected ${benchmarkCase.expected_gate}, got ${status}; ${benchmarkCase.description}`;
|
|
128
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { BenchmarkCase, BenchmarkReport, BenchmarkResult } from "../types.js";
|
|
2
|
+
export declare function runBenchmark(fixturesDir: string, cases?: BenchmarkCase[]): BenchmarkReport;
|
|
3
|
+
export declare function runBenchmarkCase(fixturesDir: string, benchmarkCase: BenchmarkCase): BenchmarkResult;
|