*Forge — pipeline canvas, checkpointing, and stale/hydrate execution for the repo you already have open
Project description
*Forge (starforge)
Forge's canvas — checkpointing, provenance, stale/hydrate execution — as a VS Code
extension over the repo you already have open. Blocks are ordinary Python functions
tagged with @block. See DESIGN.md for the full design.
Try it (M0)
# 1. Install the kernel + decorator into the venv your target repo uses
pip install -e <forge-repo>/starforge
# 2. Build the extension
cd <forge-repo>/starforge/vscode
npm install && npm run build
# 3. Open starforge/vscode in VS Code and press F5 (extension dev host).
# In the dev-host window, open any Python repo.
In your repo:
# analysis/blocks.py
import matplotlib.pyplot as plt
from starforge import block
@block(category="IO")
def make_numbers(n: int = 5) -> dict:
return {"values": list(range(1, n + 1))}
@block
def scale(data: dict, factor: float = 2.0) -> dict:
return {"values": [v * factor for v in data["values"]]}
@block
def plot(data: dict) -> dict:
plt.plot(data["values"])
plt.show() # rendered inline on the canvas node
return data
Save, run “*Forge: New Pipeline”, drag the blocks from the palette, wire
output → data, hit ▶ Run. Run again — instant, everything reused. Edit
scale, watch it (and only it) go stale.
Layout
| Path | What |
|---|---|
src/starforge/__init__.py |
the @block decorator — zero-dep, the only thing user code touches |
src/starforge/index/ |
static AST indexer (discovery, import graph, incremental cache) |
src/starforge/core/ |
doc schema, history hashing, serializers, checkpoint store, runner |
src/starforge/kernel/ |
stdio JSON-RPC kernel + per-run worker subprocess |
vscode/ |
the extension (TS host + React Flow webview) |
tests/ |
headless M0 proof — python -m pytest starforge/tests |
State lives in the target repo under .forge/ — pipelines/ is committable,
checkpoints/ and cache/ are auto-gitignored.
Project details
Release history Release notifications | RSS feed
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 starforge_kernel-0.1.2.tar.gz.
File metadata
- Download URL: starforge_kernel-0.1.2.tar.gz
- Upload date:
- Size: 43.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef289042e2e40a024ec1cf1876bc86f1daf8a0f0e99d16ab2b3cc4a5579df960
|
|
| MD5 |
f4148adb182a9f38f84dab718309638f
|
|
| BLAKE2b-256 |
5f8bad87a4fc1cfbaa97a63660a566ee40420b5a1627c9511e2cb1faf8ec5eca
|
File details
Details for the file starforge_kernel-0.1.2-py3-none-any.whl.
File metadata
- Download URL: starforge_kernel-0.1.2-py3-none-any.whl
- Upload date:
- Size: 36.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c97488de5913a3ff86b0b9d231b93c340a696bd746d9fd3bd30db2419b828da1
|
|
| MD5 |
ef7c91f7bad3c2d34f6e4242d44c93bf
|
|
| BLAKE2b-256 |
8f8f2a219cd38adc6f640052e7cde104f881c93754a2cd1d02476c1366e88de2
|