Skip to main content

murscope-ai

The network layer for murscope.

What leaves your machine, where it goes, and on whose key. Nothing leaves until you have named a provider and supplied your own key, and this distribution states what a request contains before the first one is sent. The destination is whichever provider you named - a vendor's API on the open internet, or a model on your own machine. A local model is still the network for this product's purposes: a socket is a socket, and what differs is where the data goes, which is what the consent text is for (DP90). The key is yours; this product has no account, no proxy and no server of its own.

Install it through the base package's extra, not on its own:

pip install 'murscope[ai]'

Installing it puts provider modules on disk under murscope/providers/. That is the point. pip install murscope does not, which is what keeps the base package's second promise - "It makes no network call at all. Not 'off by default' - absent" - a fact about which files exist rather than a setting (DP88).

Nothing here runs unless config.toml names it. Being installed is not being enabled, and being enabled is not consent to send: those are three separate gates and Rule 13 governs all three.

The third gate, and why it is not a yes

send() refuses anything that is not a murscope.consent.Grant, and it refuses it before a socket is anywhere in the picture. consent=True, consent=1, consent="yes" and the sentinel string this transport took in its first stage are all refused; so is a real grant recorded against a different set of fields, or against a different destination.

A grant carries a fingerprint of the disclosure it was granted for. That is the whole design and it exists because the alternative fails quietly: if a consent were a boolean, then the day the payload grows, the old agreement silently covers the new, larger one - nobody is asked again and nothing goes red. So changing what leaves costs one re-consent, and it cannot cost nothing.

murscope consent show  network --to https://api.example.com/v1
murscope consent grant network --to https://api.example.com/v1

Your key is not in what this prints when it fails

A failing request is a surface. Hand urllib a URL with a key in its query string and it answers ValueError: unknown url type: '...?key=<the key>' - a string the standard library built, which lands in an exception message, which becomes a traceback, which is an artifact.

So every failure here leaves through murscope.keys.reraise_masked(), which redacts the text and raises from None - the second half being the load-bearing one, because without it the original stays on __context__ and every traceback prints it under "During handling of the above exception" with the key intact. The base package's gate makes this transport fail with a decoy key in the URL and reads the whole traceback back, on every run.

MIT, same as the base package.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

murscope_ai-0.1.0.tar.gz (18.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

murscope_ai-0.1.0-py3-none-any.whl (29.8 kB view details)

Uploaded Python 3

File details

Details for the file murscope_ai-0.1.0.tar.gz.

File metadata

  • Download URL: murscope_ai-0.1.0.tar.gz
  • Upload date:
  • Size: 18.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.9

File hashes

Hashes for murscope_ai-0.1.0.tar.gz
Algorithm Hash digest
SHA256 40b405bbaf4d7ed0d21e6fc8e6c29a395b49a67243672c8753fde60e93755e87
MD5 aa0df9057b29bc768a627799ff8c7146
BLAKE2b-256 6e2c754c3361232c163094ab561836c84e4683f13c84ea338c8f1a28fd954b52

See more details on using hashes here.

File details

Details for the file murscope_ai-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: murscope_ai-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 29.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.9

File hashes

Hashes for murscope_ai-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6745e10dcf821e66d55102f38cd9d5c130b80d9ca8a854a31243e655b70030f2
MD5 581171b70701ea91ba300f037d95d7d2
BLAKE2b-256 52371db9fd45bab6fd5b8e7d84f4fc28dab1944cda4ed5b5e0788918bbb3ddfa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page