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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40b405bbaf4d7ed0d21e6fc8e6c29a395b49a67243672c8753fde60e93755e87
|
|
| MD5 |
aa0df9057b29bc768a627799ff8c7146
|
|
| BLAKE2b-256 |
6e2c754c3361232c163094ab561836c84e4683f13c84ea338c8f1a28fd954b52
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6745e10dcf821e66d55102f38cd9d5c130b80d9ca8a854a31243e655b70030f2
|
|
| MD5 |
581171b70701ea91ba300f037d95d7d2
|
|
| BLAKE2b-256 |
52371db9fd45bab6fd5b8e7d84f4fc28dab1944cda4ed5b5e0788918bbb3ddfa
|