furb-monty
The engine of furb for Python, run in monty, a Python interpreter written in Rust. Most programs do not import it
directly: pip install furb installs it, and furb.open opens a life on it. Read on
when you write a host of your own, which boots an engine on ears that you choose.
What it gives
furb_monty.enginegives every name of the contract,engine.pyi, over one life of the engine in the sandbox of monty. The crate loads the Kernel there, so this package needs none of its own.furb_monty.gateis the gate of the crate. The packagefurbreads a word with it too.furb_monty._montyis the door itself. It gives the same host API as the package of TypeScript, each name in the case of Python. ItsEnginehas one method for each verb of the contract, which takes the words that the verb needs by position and the others by name, and gives anActwhen the verb makes one.
FURB_ENGINE=monty makes from furb import engine give furb_monty.engine. The suite of furb runs on both engines.
Open a life
_monty.opened(directory=..., record=...) opens a life as every host of the crate opens one. It gives the record and
the ears of the crate, which the host boots after its own ears. Engine.open(ears, directory=...) boots them at
once.
from furb_monty import _monty, engine
record, ears = _monty.opened(directory=".", record="life.jsonl", actor="claude-cli:opus")
# `world` is an ear of the host that answers the rest, a prompt to the operator among it.
root = engine.boot(record, world=world, **dict(ears))
The ears of the crate are the provider of the models, the extensions, the ear of each official extension, the files,
the commands, time, and the store when the life keeps its record. The extensions enable at the start what the configs
of the user and of the directory turn on, unless extensions=False. Each ear is a NativeEar, which
furb_monty.engine.boot takes beside the generators of this interpreter, and which the engine of this interpreter,
furb.python, steps as a generator of its own.
The words of opened, each of which can be left out:
actoris the default actor, androsterthe models that the provider offers beside it. With no roster, it offers each model of the catalog, and with neither, the first of them is the default actor. A roster that names no model offers the model of the actor alone, and with no actor, the operator alone. Models says how a model is named.keepsfalse keeps nothing in the record, andinspectingtrue opens a life that keeps nothing, enables nothing new, and asks no model.extensionsfalse enables no new extension, andconfignames the config directory of the user.snapshotfalse opens the life with a replay of its record, and keeps no snapshot of it.answer, a function, answers each request in place of the models, as the suite of furb does.stream, a function, hears what a model writes as it writes it, andretryingeach retry of a call of a model.log, a function, hears each report of the life that no model reads, one line each, in place of the stderr of the process.claudenames the claude command line to run, andstallhow many seconds a turn of it may go with no progress.imagesis the directory of the images that a message names.
Only the opening of a life makes the files of a record again in its scratch directory, and gives a life with no record
a directory that goes with it. scratch(record) gives the scratch directory of a record, which a host removes when it
deletes the record.
The parts one by one
models(claude)gives the models that the catalog of this machine offers,model(name)one model by its name, andlevels()the levels of effort.files(scratch),bash(scratch, record),time(),store(path),official(),extensions(given),memory(config)andskills(config)give the ears one by one, as the suite of each extension boots them. The files and the commands share the scratch directory that the host names, which a word reads asscratch://and a command as$TMPDIR.answered(shape, line)reads a line of the operator as a value of one of theshapes(), by the rules that every console of the crate reads a line by._monty.SYSTEMis the system prompt of every model: the engine, minified with its program kept as it is.
Work that waits
furb_monty.engine.pending()names the work that an earlier life left, which waits for a wake that this life says, each act by its name and its kind. It finds each act that the outside started and did not end, and the acts that made it: each prompt, rung, command and wait that is not done and that no pause holds. An act that a wake puts to the outside again is pending no more.furb_monty.engine.parked()names the work that a crash loop parked: a run, a command or a reply that the record shows started in five lives and not done, since each of those lives ended while it ran. A wake puts no parked act to the outside, so a host that wakes the work of a life as it opens does not run it again and end again. A parked act is pending no more.furb_monty.engine.retry(id)runs a parked act again: it is parked no more in this life, and a wake of it puts it to the outside.
Make an act once
furb_monty.engine.keyed(key, kind, *args, **kwargs) makes the act of a verb once for a key of the client, across a
crash of the host and a retry of the client, as keyed("k1", "prompt", int, "count the lines", on=root). A key fact
goes to the record before the act, and a later call with the same key on the same chain gives the act that the key
made, in this life or in a later life on the record. When the host crashed after it kept the key and before it kept
the act, the call makes the act.
Ears of this interpreter
A generator of this interpreter is heard where the engine runs. A verb that it says while it hears goes to the life that hears it, as a verb that an ear of the engine of Python says does.
The extension module of this package is the crate at the root of the repository, built with its python feature.
Metadata
Release files for furb-monty 0.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| furb_monty-0.3.2.tar.gz | 639.9 kB | Without provenance | Details for furb_monty-0.3.2.tar.gz |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| furb_monty-0.3.2-cp314-cp314-win_amd64.whl | CPython 3.14 | CPython 3.14 | Windows x86-64 | Details for furb_monty-0.3.2-cp314-cp314-win_amd64.whl |
| furb_monty-0.3.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl | CPython 3.14 | CPython 3.14 | Linux glibc 2.17+ x86-64 | Details for furb_monty-0.3.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl |
| furb_monty-0.3.2-cp314-cp314-macosx_11_0_arm64.whl | CPython 3.14 | CPython 3.14 | macOS 11.0+ ARM64 | Details for furb_monty-0.3.2-cp314-cp314-macosx_11_0_arm64.whl |
Total release size: 79.6 MB
Release files / furb_monty-0.3.2.tar.gz
| Download URL | furb_monty-0.3.2.tar.gz |
|---|---|
| Size | 639.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
eb9f8e84dc2642724646e835abe9a389980fa43b3bfda910991f1f0bfb7221ae
|
|
BLAKE2b-256 checksum How to use checksums |
2d3f55867a29736a0a36a602ad007882c3ac365e726506f677a07a22a701d97e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / furb_monty-0.3.2-cp314-cp314-win_amd64.whl
| Download URL | furb_monty-0.3.2-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 25.1 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
1907ed6e42ff1c8cc24361fb90ff1e0973ef9d544c236d17e7a890259d8c1dba
|
|
BLAKE2b-256 checksum How to use checksums |
a247fa49fa991b2bfa4925be38bb4b05fcdd659710351cea80d9b5fb67b905c8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / furb_monty-0.3.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
| Download URL | furb_monty-0.3.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl |
|---|---|
| Size | 28.1 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
e1873974083245073053d70271e9519fb8a14beb2de4cd5e5c66bb12cc09783b
|
|
BLAKE2b-256 checksum How to use checksums |
febddc978c7676e3a999a0418cfce6b0830d53337c1829c5e7e919dfeeca784e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / furb_monty-0.3.2-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | furb_monty-0.3.2-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 25.8 MB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d1a5e51439c9f721d015c21f66b798ebb3cfddc7af854b3a75769353684b0644
|
|
BLAKE2b-256 checksum How to use checksums |
ab4345303e10f192d9b6e561b0b834454afe04e7a19dfbfbd3400a6047752d74
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for furb-monty 0.3.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.