Metadata-Version: 2.4
Name: dockuri
Version: 0.5.0a1
Summary: URI-addressed operations and bounded process workflows
Author: Paxlet contributors
Author-email: Tom Sapletta <tom@sapletta.com>
License: # Pochodzenie i licencjonowanie
        
        Kod Dockuri w tej paczce został przygotowany jako nowy projekt na zlecenie
        użytkownika. Paczka nie nadaje projektowi automatycznie licencji open source;
        właściciel powinien wybrać warunki dystrybucji przed publikacją.
        
        Wersja 0.5 jest kontynuacją publicznych źródeł Dockuri z rewizji
        `469201434ccd0af1c3d112854e2b1e0a72749e3b`. Zawiera również łatkę integracyjną
        dla Willmana `0e1b9bd331709fce7424f756c2c825bebfdc9063`, z fragmentami
        kontekstu jego źródeł i nowymi modułami. Pełny checkout Willmana nie jest
        dołączony. Ta informacja o pochodzeniu nie zmienia warunków praw do źródeł
        bazowych ani nie przypisuje autorstwa istniejących poprawek autorom kontynuacji.
        
        Nie skopiowano kodu, binariów, obrazów VM ani profili kont Twinerd. Według
        dostarczonego opisu Twinerd jest oprogramowaniem proprietary, all rights reserved.
        Adapter planu Dockuri nie zmienia tych warunków i wymaga osobnego dostępu do
        legalnie używanej instalacji Twinerd.
        
        Zależności Rust, Python, Docker, QEMU, noVNC i obrazy bazowe mają własne licencje.
        Nie są dołączone do archiwum; przed redystrybucją gotowych obrazów należy
        zweryfikować warunki ich konkretnych wersji. Paczka zawiera Cargo.lock;
        kompilację i testy Rust wykonano z tym plikiem. Nie deklarujemy audytu licencji
        całego grafu zależności. Nie dołączono źródeł zewnętrznego standardu
        NL–URI–DSL–LLM; dokumentacja odsyła do przypiętej rewizji jego repozytorium.
        
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE-NOTICE.md
Requires-Dist: PyYAML<7,>=6.0.2
Dynamic: license-file

# Dockuri

**0.5.0-alpha.1 — operacje URI z trwałym wyborem zadań dla Willmana i Koru.**

Willman zachowuje cel, kolejkę i strategię. Dockuri wykonuje pojedynczą dopuszczoną próbę, a Koru pracuje w wybranym projekcie. W tej wersji „wykonaj te wszystkie” odnosi się do zapisanego wyboru z poprzedniego odczytu w tej samej uwierzytelnionej rozmowie. Wykonanie nie rozszerza go o nowy skan workspace.

Źródła bazowe: publiczny Dockuri `469201434ccd0af1c3d112854e2b1e0a72749e3b` oraz nowy patch Willmana dla `0e1b9bd331709fce7424f756c2c825bebfdc9063`. To inna rewizja niż checkout Willmana `0909ff2` opisany w audycie użytkownika. Aplikator sprawdza przypięty HEAD i zawartość zmienianych plików; starego patcha 0.4 nie należy stosować z pominięciem jego zabezpieczeń.

## Co zmienia 0.5

- Trwały `selection_id`, digest, ważność i dokładne tożsamości `node_id`, kanoniczny korzeń projektu, `project_id`, `ticket_id`, rewizja. Brak, wygaśnięcie lub niezgodność wyboru zatrzymują nowe wykonania.
- Wiązanie wyboru z uwierzytelnionym operatorem i sesją rozmowy. Tożsamość pochodzi z transportu; model nie wybiera jej argumentem operacji.
- Rozliczenie całego wybranego zestawu, z osobnymi stanami oczekiwania, częściowej porażki, blokady i niepewnego skutku. `done` wymaga odczytu każdego wybranego ticketu. To dowód stanu Planfile, nie niezależna ocena jakości kodu ani dowolnego celu NL.
- Odczytowy preflight Koru przed claim/start oraz ponowna kontrola przed uruchomieniem. Sprawdza znane lokalne warunki i jawnie raportuje blokady; nie instaluje narzędzi ani nie zmienia uprawnień.
- Przygotowane środowisko builda z oddzielnymi zależnościami developerskimi i izolowanym PEP 517. Wheel nadal instaluje się bez backendu builda.
- Deterministyczne zamykanie SQLite również po nieudanej inicjalizacji rejestru.

[Analiza incydentu i zakres poprawek](docs/INCIDENT-RESPONSE-0.5.md), [instrukcja Willmana](integrations/willman/README.md) oraz [kontrakty Koru](integrations/koru/README.md) opisują szczegóły i granice tego lokalnego profilu.

## Komenda jako trwały akt

Akt zachowuje cel, przyczynę powołania, odwołania do historii, granice działania i dowody wykonania. Kolejne operacje tworzą jego historię przyczynową. Zakończenie pojedynczego procesu nie zamyka automatycznie celu. [ACT-LIFECYCLE.md](docs/ACT-LIFECYCLE.md) opisuje cykl aż do potwierdzonego sukcesu, zakończenia przez człowieka, ograniczenia środowiska lub wyczerpania budżetu, z osobnym stanem niepewnych skutków.

Paczka zawiera testowany, czysty model referencyjny tych przejść w `integrations/willman/act_model.py` oraz przykład JSONL w `examples/acts/`. Model nie uruchamia procesów i nie jest jeszcze podłączony do watchdoga. Aktywna integracja 0.5 realizuje węższy profil trwałego wyboru ticketów; ogólne planowanie kolejnych celów przez LLM wymaga dalszego połączenia z rejestrem, polityką i weryfikatorami wyników.

## Instalacja runtime

Python 3.11+; zależność runtime: PyYAML. Rust CLI jest dodatkową kompilowaną fasadą nad tymi samymi adapterami Python.

```bash
python3 -m venv .venv
. .venv/bin/activate
python -m pip install wheels/dockuri-0.5.0a1-py3-none-any.whl
dockuri --version
```

Instalacja ze źródeł: `python -m pip install .`. Integracja Willmana i bundle Koru są dostarczone w katalogu `integrations/` w ZIP; sam wheel instaluje runtime Dockuri. Zmiana konfiguracji bundle wymaga odświeżenia rejestru.

## Shell, chat, web i logi

```bash
dockuri registry upsert --project twin=examples/sessions/twin-project
dockuri sh --allow-native --allow-effects pure
```

W shell podaj jedną linię JSON:

```json
{"id":"r1","uri":"proc://taskand.dev/twin/environment/v1","args":{"action":"status","taskId":"twin-001"}}
```

W drugim terminalu `dockuri watch` pokazuje zdarzenia i wyniki. Demonstracja Twinerd zwraca jawne `mock:true` i nie tworzy VM. Dostępne są też `dockuri shell`, `chat`, `call`, `web`, `mcp`, `sessions`, `drivers` i `init`.

Domyślny stan: `.dockuri/registry.sqlite3`, `.dockuri/logs/<session>.jsonl`, `.dockuri/conversations/<session>.jsonl` i rejestr prób `jobs.sqlite3` pod katalogiem stanu. Używaj tych samych `--state` i `--db` we współpracujących procesach. `registry upsert` dodaje/odświeża jeden projekt, `registry refresh` zapamiętany zestaw, a `registry scan` zastępuje cały autorytatywny zestaw projektów.

## Długie próby wykonania

Po skonfigurowaniu własnego bundle Koru oraz listy projektów można uruchomić serwer:

```bash
dockuri registry upsert --project koru=integrations/koru
dockuri web --enable-jobs --max-operation-seconds 900 --max-jobs 2 --allow-native --allow-effects read,write,process,network
```

Panel jest pod `http://127.0.0.1:8765`, token domyślnie w `.dockuri/web.token`. Native i venv korzystają z uprawnień użytkownika i nie są sandboxami OS. Deklaracje efektów nie zastępują izolacji systemowej.

`dockuri job submit URI --args JSON --effect-id KLUCZ --timeout-seconds 300` jest krótkim wywołaniem istniejącego serwera. Dalsza obserwacja: `dockuri job status JOB_ID`, `result JOB_ID`, `cancel JOB_ID`. REST i MCP używają tej samej usługi. Zwykły `call` nadal ma limit najwyżej 30 sekund; job API udostępnia osobny konfigurowany budżet procesu.

Ta sama tożsamość efektu zwraca istniejącą próbę; inna treść pod tym samym kluczem jest konfliktem. Dockuri nie ma własnej kolejki biznesowej ani automatycznego retry. Timeout nie obejmuje całego przygotowania snapshotu i transportu. Po utracie wykonawcy rezerwacja zasobów pozostaje do potwierdzenia zakończenia; szczegóły: [ATTEMPTS.md](docs/ATTEMPTS.md).

## Willman: od wyboru do pokrycia

1. Skonfiguruj przypięty patch, lokalny endpoint Dockuri i bundle Koru. Profil nie aktywuje usług użytkownika ani nie przyznaje praw samym uruchomieniem watchdoga.
2. Uwierzytelniona rozmowa wykonuje jawny skan, np. „jakie zadania może wykonać Koru w projektach ~/github/semcod/*”. Wynik zawiera zapisany wybór i jego pokrycie.
3. „Wykonaj te wszystkie” korzysta z tego wyboru. Nieznany wybór, inne konto/sesja/węzeł, niepełny odczyt lub niezgodne argumenty powodują odmowę.
4. Kontroler sprawdza przygotowanie całego wyboru, a następnie uruchamia ograniczone partie jego pozycji. Każde uruchomienie ponownie sprawdza dokładną tożsamość i rewizję.
5. Watchdog kontynuuje aktywne wybory i odczytuje istniejące próby. Wynik częściowy lub wymagający uzgodnienia pozostaje widoczny. Samo przyjęcie zlecenia albo `exit 0` nie zamykają celu.

Wybór obejmuje najwyżej 200 pozycji. Ważność jest ograniczona i nie odnawia się automatycznie. Wygaśnięcie zatrzymuje nowe uruchomienia, ale nie ukrywa już działających prób. „Cały Mesh” nie oznacza broadcastu; zdalny fan-out, tożsamości tenantów i broker poświadczeń wymagają odrębnej integracji.

## Budowa i weryfikacja

Build ma osobne wymagania; nie dodajemy setuptools do runtime. Pełna instrukcja: [BUILD.md](docs/BUILD.md).

```bash
python -m pip install -r requirements-build.txt
python tools/check_installed_wheel.py --check-build-tools
python tools/check_installed_wheel.py
```

Kontrole źródłowe:

```bash
python -m unittest discover -s tests -v
python -m unittest discover -s integrations/twinerd -p 'test_*.py' -v
python tools/validate_schemas.py --require-validator
python tools/smoke_surfaces.py
cargo test --locked
```

Pełna bramka Willmana wymaga jego przypiętych źródeł i policy-dsl. Uruchom `integrations/willman/verify.py` zgodnie z instrukcją; brak checkoutów nie jest zaliczeniem integracji. Python 3.13 ma dodatkowy test natywnych `ResourceWarning`; wcześniejszy interpreter jawnie go pomija, a niezależne testy rzeczywistych połączeń i deskryptorów nadal działają.

[TEST-REPORT.json](TEST-REPORT.json) zawiera wyniki dla tej paczki. W testach end-to-end wrapper i transport są rzeczywiste, natomiast Koru jest fixture CLI pracującym na tymczasowym Planfile. Nie wdrażano zmian na hoście użytkownika, nie wykonywano produkcyjnych ticketów, nie czytano prywatnej poczty, nie uruchamiano prawdziwego modelu ani 24-godzinnego soak. Konfiguracja CI nie jest dowodem wykonania CI na GitHubie.

Historyczne pomiary 0.2–0.4 pozostają oznaczonymi dowodami wcześniejszych wersji. Wyszukiwanie leksykalne nie stało się ogólnym parserem intencji ani upoważnieniem do wykonania. Importery Taskand/Paxlet, broker sekretów, fan-out inwentarza usług oraz uniwersalność dla wszystkich OS/języków nie są certyfikowane tą paczką. [Standard](docs/STANDARD-MAPPING.md), [licencja](LICENSE-NOTICE.md), [poprzedni profil](docs/LEGACY-0.4.md).
