szpont
Install-and-run for Diplomat (Szpont Yon) - the menu-bar / system-tray applet that reviews your pull requests, fixes your own, resolves conflicts, and keeps one device per agent.
pip install szpont && szpont # or: npx szpont
That is the whole install. macOS and Linux.
What it actually does
Diplomat is built out of the checkout it runs from - a SwiftUI bundle on macOS, a
PySide6 package plus the diplomat-core Swift binary on Linux - and it keeps
being that checkout: the Update button, the daily 06:00 timer and the commit the
panel reports are all git operations on it. A wheel holding a copy would be a
second Diplomat that no update could reach.
So this distribution is the steps in between, and every one of them runs a script that is already in the repository:
| macOS | Linux | |
|---|---|---|
| get it | git clone into ~/.diplomat/checkout, or fast-forward it |
same |
| build it | install/build-app.sh → Diplomat.app |
install/build-core.sh when the prompt binary is missing |
| set it up | - | a venv at ~/.diplomat/venv with requirements.txt in it |
| start it | open Diplomat.app |
the package's own ./diplomat, on the venv's interpreter |
Nothing is rebuilt that does not need to be: a venv is left alone until
requirements.txt changes, and the Swift prompt binary is only built when the
applet would not find one. git is needed to fetch Diplomat, and a Swift
toolchain to build it - if one is missing you are told which and where to get it,
before anything is downloaded.
szpont --plan # print what would be run, as JSON, and do none of it
szpont --no-update # launch the checkout as it stands
szpont -- --dump # everything after -- goes to the applet
DIPLOMAT_SELF_REPO points at a checkout of your own - the same variable the
running applet reads, and one this launcher never updates, because a working copy
may have work in it. DIPLOMAT_REPO_URL clones from a fork.
The same name on both indexes
npx szpont runs the same launcher, and that is all either name installs: one
file of standard library on each side, no dependency on either index. What keeps
them one command is packages/szpont-npm/test/parity-with-python.mjs - every
machine shape in test/scenarios.mjs goes through both planners, and the two
answers have to be identical.
The protocol Diplomat's machines find each other over is
SzpontNet,
published separately as szpontnet; nothing here imports it, and installing this
does not install it.
Its own tests
pip install pytest
pytest packages/szpont/tests -q
Note on the name
szpont names three things, and they share the namespace rather than compete for
it: this command, its npm twin, and the
conformance tester,
run as python -m szpont from its own directory.
Only the tester is precarious. It is never installed, and the working directory
precedes site-packages on sys.path, so it wins from where it is run - but
publishing it under this name is what the three could not share. The console
script cannot collide with it at all: an entry point is a file in bin/, not a
name on the import path, and the module this one lives in is szpont_launcher.
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 szpont-0.27.0.tar.gz.
File metadata
- Download URL: szpont-0.27.0.tar.gz
- Upload date:
- Size: 14.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d430ce9f97607b1e506156247124cc5e4c1e8ebd7ae1a6d6d58682d3b56ff1b
|
|
| MD5 |
3a9f85a078878708261e41356a8f0d25
|
|
| BLAKE2b-256 |
5c0458e72d8f419cb7ab7cba585b929682420f812acb69500b2c29c0a46a5ee0
|
Provenance
The following attestation bundles were made for szpont-0.27.0.tar.gz:
Publisher:
release-szpont.yml on latekvo/Diplomat
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
szpont-0.27.0.tar.gz -
Subject digest:
3d430ce9f97607b1e506156247124cc5e4c1e8ebd7ae1a6d6d58682d3b56ff1b - Sigstore transparency entry: 2581375329
- Sigstore integration time:
-
Permalink:
latekvo/Diplomat@898be9e0c9ff743d4589fbacb40aeb4d4a216a26 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/latekvo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-szpont.yml@898be9e0c9ff743d4589fbacb40aeb4d4a216a26 -
Trigger Event:
push
-
Statement type:
File details
Details for the file szpont-0.27.0-py3-none-any.whl.
File metadata
- Download URL: szpont-0.27.0-py3-none-any.whl
- Upload date:
- Size: 9.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d69ab4783936e2374c3126daab59f31aaf535b63838691645cb9451337bc377
|
|
| MD5 |
8bfc10acefd125d43bd87c799d579d5b
|
|
| BLAKE2b-256 |
a3140fbc3add5535a70ee15c319ee65a87d9d127c2c28f84cd63ff67f899a699
|
Provenance
The following attestation bundles were made for szpont-0.27.0-py3-none-any.whl:
Publisher:
release-szpont.yml on latekvo/Diplomat
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
szpont-0.27.0-py3-none-any.whl -
Subject digest:
8d69ab4783936e2374c3126daab59f31aaf535b63838691645cb9451337bc377 - Sigstore transparency entry: 2581375337
- Sigstore integration time:
-
Permalink:
latekvo/Diplomat@898be9e0c9ff743d4589fbacb40aeb4d4a216a26 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/latekvo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-szpont.yml@898be9e0c9ff743d4589fbacb40aeb4d4a216a26 -
Trigger Event:
push
-
Statement type: