@junghanacs/entwurf 0.30.1 → 0.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +4 -2
- package/CHANGELOG.md +194 -0
- package/DELIVERY.md +1 -0
- package/README.md +64 -14
- package/VERIFY.md +36 -1
- package/demo/README.md +1 -1
- package/docs/acp-backend-rail.md +1 -1
- package/docs/setup-clean-host.md +121 -4
- package/mcp/entwurf-bridge/dist/mcp/entwurf-bridge/src/index.js +7 -7
- package/mcp/entwurf-bridge/dist/pi-extensions/entwurf-capabilities.json +1 -0
- package/mcp/entwurf-bridge/dist/pi-extensions/lib/entwurf-deliverability.js +7 -1
- package/mcp/entwurf-bridge/dist/pi-extensions/lib/fresh-call-composition.js +34 -3
- package/mcp/entwurf-bridge/dist/pi-extensions/lib/meta-sender-identity.js +7 -1
- package/mcp/entwurf-bridge/dist/pi-extensions/lib/meta-session.js +28 -2
- package/mcp/entwurf-bridge/dist/pi-extensions/lib/mux-fresh-call.js +28 -2
- package/mcp/entwurf-bridge/dist/pi-extensions/lib/pi-durable-fresh-preflight.js +92 -0
- package/mcp/entwurf-bridge/dist/pi-extensions/lib/pi-durable-runtime.js +236 -0
- package/mcp/entwurf-bridge/dist/pi-extensions/meta-bridge-pi-durable.js +746 -0
- package/mcp/entwurf-bridge/src/index.ts +7 -7
- package/mcp/entwurf-bridge/tsconfig.build.json +8 -1
- package/package.json +19 -19
- package/pi/entwurf-capabilities.json +1 -0
- package/pi/pi-durable/bootstrap.mjs +404 -0
- package/pi/pi-durable/carrier/LICENSE +21 -0
- package/pi/pi-durable/carrier/harness-setup.js +123 -0
- package/pi/pi-durable/carrier/prompt.js +74 -0
- package/pi/pi-durable/carrier/runtime.js +402 -0
- package/pi/pi-durable/carrier/sessions.js +56 -0
- package/pi/pi-durable/carrier/subagent.js +55 -0
- package/pi/pi-durable/carrier/tui.js +655 -0
- package/pi/pi-durable/carrier-relocation.mjs +160 -0
- package/pi/pi-durable/carrier-resolver.mjs +38 -0
- package/pi/pi-durable/overlay/runtime-contacts.patch +91 -0
- package/pi/pi-durable/overlay/upstream-pin.json +108 -0
- package/pi-extensions/lib/entwurf-deliverability.ts +7 -1
- package/pi-extensions/lib/fresh-call-composition.ts +42 -7
- package/pi-extensions/lib/meta-sender-identity.ts +7 -1
- package/pi-extensions/lib/meta-session.ts +28 -2
- package/pi-extensions/lib/mux-fresh-call.ts +32 -2
- package/pi-extensions/lib/pi-durable-fresh-preflight.ts +113 -0
- package/pi-extensions/lib/pi-durable-runtime.ts +318 -0
- package/pi-extensions/meta-bridge-pi-durable.ts +1024 -0
- package/run.sh +624 -184
- package/scripts/check-entwurf-bridge-pi-free.ts +7 -5
- package/scripts/check-fresh-call-dispatch.ts +18 -0
- package/scripts/check-gate-qualification.ts +87 -34
- package/scripts/check-herdr-activation.ts +5 -4
- package/scripts/check-pi-durable-contact.ts +767 -0
- package/scripts/check-pi-durable-receive.ts +1079 -0
- package/scripts/check-pi-durable-send.ts +1821 -0
- package/scripts/emit-pi-durable-carrier.ts +355 -0
- package/scripts/lib/mutation-qualify.ts +21 -45
- package/scripts/lib/pi-durable-fresh-live-receipts.ts +139 -0
- package/scripts/lib/pi-durable-operator-guard.ts +89 -0
- package/scripts/lib/pi-durable-r1.ts +100 -0
- package/scripts/lib/pi-durable-reap.ts +27 -0
- package/scripts/lib/pi-durable-receive.ts +137 -0
- package/scripts/lib/qualification-receipt.ts +7 -11
- package/scripts/mutants/control-send-receipt.json +1 -1
- package/scripts/mutants/copilot-birth.json +2 -2
- package/scripts/mutants/gate-qualification.json +13 -0
- package/scripts/mutants/meta-hook-session-switch.json +4 -2
- package/scripts/mutants/mux-fresh-call.json +69 -3
- package/scripts/mutants/omp-birth.json +2 -2
- package/scripts/mutants/omp-fresh.json +6 -4
- package/scripts/mutants/pack-install.json +3 -3
- package/scripts/mutants/pi-durable.json +723 -0
- package/scripts/mutants/pi-floor.json +24 -2
- package/scripts/pi-durable-contact-host.mjs +105 -0
- package/scripts/pi-durable-receive-host.mjs +127 -0
- package/scripts/pi-durable-send-host.mjs +284 -0
- package/scripts/smoke-herdr-raw-install-live.sh +1 -1
- package/scripts/smoke-pi-durable-fresh-live.ts +624 -0
- package/scripts/smoke-setup-verdict.sh +22 -3
- package/scripts/smoke-user-scope-citizen.sh +1 -1
- package/scripts/tsconfig.json +1 -0
|
@@ -140,6 +140,8 @@ want "S-1: claude absent is an explicit zero-state SKIP" "printf '%s' \"\$OUT\"
|
|
|
140
140
|
want "S-1: agy absent is an explicit zero-state SKIP" "printf '%s' \"\$OUT\" | grep -q 'agy: SKIP'"
|
|
141
141
|
want "S-1: copilot absent is an explicit zero-state SKIP" "printf '%s' \"\$OUT\" | grep -q 'copilot: SKIP'"
|
|
142
142
|
want "S-1: omp absent is an explicit zero-state SKIP" "printf '%s' \"\$OUT\" | grep -q 'omp: SKIP'"
|
|
143
|
+
want "S-1: the pi-durable row is the package's own carrier verdict (PASS: carrier + pinned SDK set verify; never a SKIP)" "printf '%s' \"\$OUT\" | grep -q 'pi-durable: PASS'"
|
|
144
|
+
want "S-1: setup writes nothing for pi-durable (the carrier ships in the package)" "[ ! -e '$XDG_DATA_HOME/entwurf/pi-durable' ]"
|
|
143
145
|
want "S-1: core bridge boundary validated (PASS)" "printf '%s' \"\$OUT\" | grep -q 'core: PASS'"
|
|
144
146
|
want "S-1: final verdict is computed, not unconditional" \
|
|
145
147
|
"printf '%s' \"\$OUT\" | grep -q 'result: green (computed from the component outcomes above)'"
|
|
@@ -148,6 +150,23 @@ want "S-1: the retired unconditional green line is gone" \
|
|
|
148
150
|
want "S-1: zero Pi wiring written for an absent pi" "[ ! -e '$PROJ1/.pi' ]"
|
|
149
151
|
want "S-1: no user-scope pi settings were created" "[ ! -e '$PI_CODING_AGENT_DIR/settings.json' ]"
|
|
150
152
|
want "S-1: no agy config was created" "[ ! -e '$HOME/.gemini' ]"
|
|
153
|
+
|
|
154
|
+
# ── S-PD: the retired source-runtime location decides nothing (#130 hard cut, no legacy reader) ──
|
|
155
|
+
# 0.31.0 read an operator runtime at $XDG_DATA_HOME/entwurf/pi-durable/runtime. Since #130 the
|
|
156
|
+
# carrier ships in the package and that location is not a fallback: debris left there (here, an
|
|
157
|
+
# empty non-checkout directory, which 0.31.0 refused as unverifiable) must neither turn the row
|
|
158
|
+
# into a FAIL nor be touched. The row stays the package's own carrier verdict.
|
|
159
|
+
echo "[smoke-setup-verdict] S-PD debris at the retired durable runtime location"
|
|
160
|
+
PROJPD="$SB/projpd"; mkdir -p "$PROJPD"
|
|
161
|
+
PD_RUNTIME="$XDG_DATA_HOME/entwurf/pi-durable/runtime"; mkdir -p "$PD_RUNTIME"
|
|
162
|
+
seed_auth
|
|
163
|
+
set +e; OUT="$(bash "$REPO_DIR/run.sh" setup "$PROJPD" 2>&1)"; RC=$?; set -e
|
|
164
|
+
want "S-PD: the retired location does not decide the row — the carrier verdict is still PASS, setup green" \
|
|
165
|
+
"[ '$RC' -eq 0 ] && printf '%s' \"\$OUT\" | grep -q 'pi-durable: PASS'"
|
|
166
|
+
want "S-PD: no 0.31.0 runtime refusal is named" "! printf '%s' \"\$OUT\" | grep -q 'pi-durable-runtime-'"
|
|
167
|
+
want "S-PD: setup changed nothing at the retired location" "[ -z \"\$(ls -A '$PD_RUNTIME')\" ]"
|
|
168
|
+
want_auth_untouched "S-PD"
|
|
169
|
+
rm -rf "$XDG_DATA_HOME/entwurf/pi-durable"
|
|
151
170
|
want "S-1: no Copilot config/units were created" "[ ! -e '$HOME/.copilot' ]"
|
|
152
171
|
want "S-1: no OMP config/units were created" "[ ! -e '$HOME/.omp' ]"
|
|
153
172
|
want "S-1: no Codex config/units were created" "[ ! -e '$HOME/.codex' ]"
|
|
@@ -193,7 +212,7 @@ want_auth_untouched "S-2b"
|
|
|
193
212
|
# ── S-3: pi at the pinned floor → presence completes project + user wiring ──
|
|
194
213
|
echo "[smoke-setup-verdict] S-3 pi present at floor"
|
|
195
214
|
PROJ3="$SB/proj3"; mkdir -p "$PROJ3"
|
|
196
|
-
PI_PIN="$(node -e 'console.log(require(process.argv[1]).
|
|
215
|
+
PI_PIN="$(node -e 'console.log(require(process.argv[1]).dependencies["@earendil-works/pi-coding-agent"])' "$REPO_DIR/package.json")"
|
|
197
216
|
printf '#!/usr/bin/env bash\necho %s\n' "$PI_PIN" > "$SB/harness/pi-ok"; chmod +x "$SB/harness/pi-ok"
|
|
198
217
|
seed_auth
|
|
199
218
|
set +e; OUT="$(PI_BIN="$SB/harness/pi-ok" bash "$REPO_DIR/run.sh" setup "$PROJ3" 2>&1)"; RC=$?; set -e
|
|
@@ -510,8 +529,8 @@ PROJ9C="$SB/proj9c"; mkdir -p "$PROJ9C"
|
|
|
510
529
|
seed_auth
|
|
511
530
|
set +e; OUT="$(PATH="$FAKE_UNAME:$PATH" bash "$REPO_DIR/run.sh" setup "$PROJ9C" 2>&1)"; RC=$?; set -e
|
|
512
531
|
want "S-9c: a harness-free uncertified host still exits 0" "[ '$RC' -eq 0 ]"
|
|
513
|
-
want "S-9c: all six harness probes are still zero-state SKIPs" \
|
|
514
|
-
"printf '%s' \"\$OUT\" | grep -q 'pi: SKIP' && printf '%s' \"\$OUT\" | grep -q 'claude: SKIP' && printf '%s' \"\$OUT\" | grep -q 'agy: SKIP' && printf '%s' \"\$OUT\" | grep -q 'copilot: SKIP' && printf '%s' \"\$OUT\" | grep -q 'omp: SKIP' && printf '%s' \"\$OUT\" | grep -q 'codex: SKIP'"
|
|
532
|
+
want "S-9c: all six harness probes are still zero-state SKIPs, and the packaged pi-durable carrier still verifies" \
|
|
533
|
+
"printf '%s' \"\$OUT\" | grep -q 'pi: SKIP' && printf '%s' \"\$OUT\" | grep -q 'claude: SKIP' && printf '%s' \"\$OUT\" | grep -q 'agy: SKIP' && printf '%s' \"\$OUT\" | grep -q 'copilot: SKIP' && printf '%s' \"\$OUT\" | grep -q 'omp: SKIP' && printf '%s' \"\$OUT\" | grep -q 'codex: SKIP' && printf '%s' \"\$OUT\" | grep -q 'pi-durable: PASS'"
|
|
515
534
|
want "S-9c: core still PASSes and the computed summary is still green" \
|
|
516
535
|
"printf '%s' \"\$OUT\" | grep -q 'core: PASS' && printf '%s' \"\$OUT\" | grep -q 'result: green (computed from the component outcomes above)'"
|
|
517
536
|
want "S-9c: an absent harness is never given a rail verdict it did not earn" \
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
#
|
|
19
19
|
# Cell 15 closes the third (#110), and it is the one cell here that SPAWNS pi: the
|
|
20
20
|
# defect is not a byte, it is which of two checkouts wins `--entwurf-control`, and
|
|
21
|
-
# only the real loader can say. It uses the pinned
|
|
21
|
+
# only the real loader can say. It uses the pinned dependency pi, never PATH.
|
|
22
22
|
set -euo pipefail
|
|
23
23
|
export PYTHONDONTWRITEBYTECODE=1 # snapshot purity: no ignored scripts/__pycache__ writes under qualification
|
|
24
24
|
|
package/scripts/tsconfig.json
CHANGED