Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
cedcf2f
IMP-098: record bounded SDK runtime implementation lease
Oct 6, 2026
c1c191c
IMP-098: select package-owned SDK helper after peer comparison
Oct 6, 2026
3418b7b
Package locked Agents SDK runtime and bind release custody
Oct 6, 2026
5bbaa3c
Merge commit 'b1c68361aefd94a81bb803b8fa94abaaa950cdb4' into codex/im…
Oct 6, 2026
dc384ea
Preserve SDK request guards across client clones and pin standard tier
Oct 6, 2026
4d00717
Merge commit '7fac0254' into codex/imp-098-packaged-sdk
Oct 6, 2026
d54b3a8
Integrate packaged SDK defaults and closed runtime observations
Oct 6, 2026
d45ef77
Merge branch 'codex/imp-097-user-configuration' into codex/imp-098-pa…
Oct 6, 2026
cbfe843
Expect credential setup before SDK helper readiness
Oct 6, 2026
032b43d
Merge branch 'codex/imp-097-user-configuration' into codex/imp-098-pa…
Oct 7, 2026
59f7c23
Preserve safe SDK setup recovery and executable service corrections
Oct 7, 2026
52f6da1
Merge configuration admission fixture repair into packaged SDK
Oct 7, 2026
04873e0
Merge configuration release rehearsal admission fix
Oct 7, 2026
7bedbc6
Freeze release rehearsal at reviewed SDK corpus size
Oct 7, 2026
00fb4a7
Preserve SDK recovery through CLI output and preflight credentials
Oct 7, 2026
807a2bf
Separate SDK and Codex diagnostic qualification tests
Oct 7, 2026
9959a78
IMP-098: assign genuine installed upgrade qualification paths
Oct 7, 2026
b6991c2
IMP-098: assign fixed prior release input qualification
Oct 7, 2026
a8828b0
IMP-098: qualify genuine installed upgrades and SDK discovery
Oct 7, 2026
c3ff0be
IMP-098: assign measured generated SDK oracle reconciliation
Oct 7, 2026
65f09be
IMP-098: keep SDK generated oracle and probe observations coherent
Oct 7, 2026
0ce12ca
IMP-098: make hosted build identity failure route explicit
Oct 7, 2026
851ebab
Lease measured SDK dependency inventory admission repairs
Oct 7, 2026
35638ae
Lease direct SDK test discovery corrections
Oct 7, 2026
7e916a2
Include SDK artifact tests in direct Python suite execution
Oct 7, 2026
8a61ea4
Admit truthful hash-locked SDK Python dependency evidence
Oct 7, 2026
9a88449
Lease measured Bun default fixture reconciliation
Oct 7, 2026
4bf9504
Preserve default-path hostile environment canary coverage
Oct 7, 2026
2dcc191
Reconcile Bun SDK defaults while preserving hostile environment coverage
Oct 7, 2026
cd0e143
Lease strict installed helper banner assertion repair
Oct 7, 2026
6c47e86
Lease explicit hosted service framework fixtures
Oct 7, 2026
29f41d4
Lease closed hosted selector in service fixture schema
Oct 7, 2026
3eeab98
Qualify exact SDK banner and explicit hosted service framework routes
Oct 7, 2026
a645341
Lease measured Homebrew and portable SDK fixture fixes
Oct 7, 2026
23b2167
Remove owned Homebrew versions completely and keep SDK fixtures portable
Oct 7, 2026
96faa95
Lease measured SDK packaging admission repairs
Oct 7, 2026
6b4507d
Clarify cross-platform early packaging rejection coverage
Oct 7, 2026
1e74dcc
Reconcile packaging acceptance with the packaged SDK default
Oct 7, 2026
6d9838c
Lease authenticated npm SDK rehearsal coverage
Oct 7, 2026
18b9bfb
Qualify SDK relocation through the authenticated installed npm launcher
Oct 7, 2026
46a6a34
Lease measured Linux SDK cache construction repair
Oct 7, 2026
6c54009
Create the owned SDK freeze cache before strict cleanup
Oct 7, 2026
3dba2ce
Lease native SDK inventory host oracle reconciliation
Oct 7, 2026
d7fa4af
Align SDK inventory host oracle with frozen four-platform contract
Oct 7, 2026
ca16ffc
Record reviewed cold SDK version-probe repair scope
Oct 7, 2026
578c418
Keep cold SDK identity probes free of provider imports
Oct 7, 2026
acd1822
Lease safe native release probe diagnostics
Oct 7, 2026
4153930
Identify failed offline release probes without disclosing output
Oct 7, 2026
5139e2d
Lease native SDK provenance and compatible library integration
Oct 7, 2026
5a99d38
Route native Linux SDK construction through pinned compatible suppliers
Oct 7, 2026
0621b25
Lease native SDK package custody and artifact SBOM integration
Oct 7, 2026
c53312e
Verify frozen GNU SDK supplier symbols origins and license evidence
Oct 7, 2026
d4f21da
Qualify Linux SDK in pinned minimal runtime before packaging
Oct 7, 2026
9f9575b
Bind Linux SDK native inventory to package custody and SBOM
Oct 7, 2026
57796a6
Fix repository-root packaging test sibling imports
Oct 7, 2026
a71977d
Lease strict RPM file provenance correction
Oct 7, 2026
e50551d
Verify exact RPM payload aliases and SHA256 provenance
Oct 7, 2026
0f0bdf7
Decode pinned Linux SDK archive before container extraction
Oct 7, 2026
e40a3f9
Carry complete Mac SDK payload through packaging and installation
Oct 7, 2026
9a6505d
Preserve static Windows admission and complete Mac npm custody
Oct 7, 2026
046eef4
Distinguish explicit development SDK rehearsal fixtures
Oct 7, 2026
5526e7a
Authenticate SDK npm archives and repair native Linux qualification
Oct 7, 2026
dd08df9
Use the installed npm alias dependency path
Oct 7, 2026
bac5ec8
Fix packaged SDK release qualification on Mac and Linux
Oct 7, 2026
4e80f69
Verify final freezer selection and preserve Homebrew SDK payloads
Oct 7, 2026
27690a4
Qualify owning wheel RECORD and explicit development Homebrew context
Oct 7, 2026
ba212da
fix: permit bounded Linux runtime extraction mappings
Oct 7, 2026
ec2ab54
Retain shell ownership through subprocess cancellation
Oct 7, 2026
5b10b3d
Settle owned SDK tools and report kernel retrieval failures accurately
Oct 7, 2026
2b9ee58
Isolate client construction in retrieval cancellation fixture
Oct 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/workflows/cli-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,12 @@ jobs:
python3 -m pip install --require-hashes --only-binary=:all: -r cli/ci/requirements-test.txt
cd cli/bun
bun install --frozen-lockfile --ignore-scripts
- name: Prepare the separately locked Agents SDK build interpreter
run: |
uv venv --python 3.10.20 --seed "$RUNNER_TEMP/agents-sdk-python"
"$RUNNER_TEMP/agents-sdk-python/bin/python3" -m pip install --require-hashes --only-binary=:all: -r harnesses/agents-sdk/requirements-build.txt
- name: Test the actual pinned Agents SDK runtime without provider credentials
run: '"$RUNNER_TEMP/agents-sdk-python/bin/python3" -m unittest discover -s harnesses/agents-sdk -p test_run.py'
- name: Admit current source without provider credentials
shell: bash
run: python3 cli/ci/run_local.py 2>&1 | tee "$RUNNER_TEMP/cli-admission.log"
Expand Down
67 changes: 66 additions & 1 deletion .github/workflows/cli-distribution-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
matrix:
os: [ubuntu-22.04, ubuntu-22.04-arm, macos-15, macos-15-intel]
runs-on: ${{ matrix.os }}
timeout-minutes: 45
timeout-minutes: 60
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262
with:
Expand Down Expand Up @@ -52,13 +52,25 @@ jobs:
# resolver checks this exact cwd filename before attempting a fetch.
if [ "$RUNNER_OS" = macOS ] && [ "$RUNNER_ARCH" = X64 ]; then
cp "$(command -v bun)" bun-darwin-x64-baseline-v1.3.5
cp "$(command -v bun)" cli/bun/bun-darwin-x64-baseline-v1.3.5
fi
rustup toolchain install 1.87.0 --profile minimal
rustup default 1.87.0
cargo fetch --locked --manifest-path cli/rust/Cargo.toml
python3 -m pip install --require-hashes --only-binary=:all: -r cli/ci/requirements-test.txt
cd cli/bun
bun install --frozen-lockfile --ignore-scripts
- name: Prepare the pinned full Linux SDK Python archive
if: runner.os == 'Linux'
env:
SDK_PLATFORM: ${{ runner.arch == 'ARM64' && 'linux-arm64-gnu' || 'linux-x64-gnu' }}
run: timeout --kill-after=1s 130s python3 cli/ci/prepare_agents_sdk_linux.py --platform "$SDK_PLATFORM" --out "$RUNNER_TEMP/agents-sdk-python-full.tar.zst"
- name: Prepare the separately locked Agents SDK build interpreter
run: |
uv venv --python 3.10.20 --seed "$RUNNER_TEMP/agents-sdk-python"
"$RUNNER_TEMP/agents-sdk-python/bin/python3" -m pip install --require-hashes --only-binary=:all: -r harnesses/agents-sdk/requirements-build.txt
- name: Test the actual pinned Agents SDK runtime without provider credentials
run: '"$RUNNER_TEMP/agents-sdk-python/bin/python3" -m unittest discover -s harnesses/agents-sdk -p test_run.py'
- name: Check the public surface
# prose-cli is a public user client: no internal service detail or
# developer-only surface in tracked files, release help or binaries.
Expand Down Expand Up @@ -100,9 +112,36 @@ jobs:
python3 -m unittest discover -s cli/ci -p test_assemble_kernel_rc.py
python3 -m unittest discover -s cli/ci -p test_kernel_rc_evidence.py
python3 -m unittest discover -s cli/ci -p test_sign_macos.py
python3 -m unittest discover -s cli/ci -p test_build_agents_sdk.py
python3 -m unittest discover -s cli/ci -p test_build_kernel_rc.py
python3 -m unittest discover -s cli/ci -p test_fetch_previous_release.py
python3 -m unittest discover -s cli/ci -p test_qualify_installed_sdk.py
python3 -m unittest cli.ci.test_package_local.PackagedSdkArtifactTests
python3 -m unittest discover -s cli/ci -p test_dependency_evidence.py
python3 -m unittest discover -s cli/ci -p test_check_workflows.py
python3 -m unittest discover -s cli/ci -p test_rehearse_npm_identity.py
- name: Build, package and exercise fresh standalone and npm installations
run: python3 cli/ci/rehearse_release.py --output "$RUNNER_TEMP/cli-rehearsal" --trials 1
- name: Build and verify production SDK standalone and npm installations
# This RC version is an unpublished construction fixture. Live model
# qualification and reviewed publication remain separate gates.
env:
RC_VERSION: '0.15.0-rc.4'
run: python3 cli/ci/build_kernel_rc.py --version "$RC_VERSION" --out "$RUNNER_TEMP/kernel-rc" --agents-sdk-python "$RUNNER_TEMP/agents-sdk-python/bin/python3" --agents-sdk-linux-python-archive "$RUNNER_TEMP/agents-sdk-python-full.tar.zst"
- name: Fetch pinned genuine previous release inputs
env:
UPGRADE_PLATFORM: ${{ matrix.os == 'ubuntu-22.04' && 'linux-x64-gnu' || matrix.os == 'ubuntu-22.04-arm' && 'linux-arm64-gnu' || matrix.os == 'macos-15-intel' && 'darwin-x64' || 'darwin-arm64' }}
run: python3 cli/ci/fetch_previous_release.py --platform "$UPGRADE_PLATFORM" --out "$RUNNER_TEMP/previous-rc3"
- name: Qualify actual SDK installations and genuine upgrades
env:
RC_VERSION: '0.15.0-rc.4'
EXPECTED_SOURCE: ${{ github.sha }}
run: |
python3 cli/ci/qualify_installed_sdk.py \
--candidate-root "$RUNNER_TEMP/kernel-rc" --source "$EXPECTED_SOURCE" --version "$RC_VERSION" \
--previous-release "$RUNNER_TEMP/previous-rc3" \
--node "$(command -v node)" --npm "$(command -v npm)" \
--out "$RUNNER_TEMP/kernel-rc/installed-qualification"
- name: Test Homebrew candidate archive admission
run: python3 -m unittest discover -s cli/ci -p test_homebrew_rehearsal.py
- uses: Homebrew/actions/setup-homebrew@dc7099b3e807f1e2ecc61f3ecabc840eedd5586a
Expand All @@ -111,6 +150,16 @@ jobs:
"$RUNNER_TEMP/distribution-python/bin/python3" cli/ci/homebrew_rehearsal.py
--rehearsal "$RUNNER_TEMP/cli-rehearsal"
--output "$RUNNER_TEMP/cli-homebrew-rehearsal"
- name: Rehearse Homebrew against the production SDK archives
env:
RC_VERSION: '0.15.0-rc.4'
EXPECTED_SOURCE: ${{ github.sha }}
run: |
"$RUNNER_TEMP/distribution-python/bin/python3" cli/ci/homebrew_rehearsal.py \
--kernel-rc "$RUNNER_TEMP/kernel-rc" \
--expected-source "$EXPECTED_SOURCE" --expected-version "$RC_VERSION" \
--previous-release "$RUNNER_TEMP/previous-rc3" \
--output "$RUNNER_TEMP/kernel-rc/homebrew"
- name: Retain rehearsal evidence
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
Expand All @@ -119,5 +168,21 @@ jobs:
path: |
${{ runner.temp }}/cli-rehearsal
${{ runner.temp }}/cli-homebrew-rehearsal
${{ runner.temp }}/kernel-rc/agents-sdk
${{ runner.temp }}/kernel-rc/package
${{ runner.temp }}/kernel-rc/logs
${{ runner.temp }}/kernel-rc/agents-sdk-native/*.json
${{ runner.temp }}/kernel-rc/agents-sdk-native/*.log
${{ runner.temp }}/kernel-rc/agents-sdk-native/*cleanup-error.txt
${{ runner.temp }}/kernel-rc/agents-sdk-native/supplier
${{ runner.temp }}/kernel-rc/agents-sdk-native/frozen
${{ runner.temp }}/kernel-rc/agents-sdk-native/python-full/python/PYTHON.json
${{ runner.temp }}/kernel-rc/agents-sdk-native/python-full/python/licenses
${{ runner.temp }}/kernel-rc/agents-sdk-runtime/runtime-report.json
${{ runner.temp }}/kernel-rc/agents-sdk-runtime/job/*.log
${{ runner.temp }}/kernel-rc/build-report.json
${{ runner.temp }}/kernel-rc/homebrew
${{ runner.temp }}/kernel-rc/installed-qualification
${{ runner.temp }}/previous-rc3
retention-days: 14
if-no-files-found: warn
46 changes: 43 additions & 3 deletions .github/workflows/cli-kernel-rc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,23 +67,51 @@ jobs:
python3 -m pip install --require-hashes --only-binary=:all: -r cli/ci/requirements-test.txt
cd cli/bun
bun install --frozen-lockfile --ignore-scripts
- name: Prepare the pinned full Linux SDK Python archive
if: runner.os == 'Linux'
env:
SDK_PLATFORM: ${{ runner.arch == 'ARM64' && 'linux-arm64-gnu' || 'linux-x64-gnu' }}
run: timeout --kill-after=1s 130s python3 cli/ci/prepare_agents_sdk_linux.py --platform "$SDK_PLATFORM" --out "$RUNNER_TEMP/agents-sdk-python-full.tar.zst"
- name: Prepare the separately locked Agents SDK build interpreter
run: |
uv venv --python 3.10.20 --seed "$RUNNER_TEMP/agents-sdk-python"
"$RUNNER_TEMP/agents-sdk-python/bin/python3" -m pip install --require-hashes --only-binary=:all: -r harnesses/agents-sdk/requirements-build.txt
- name: Test the actual pinned Agents SDK runtime without provider credentials
run: '"$RUNNER_TEMP/agents-sdk-python/bin/python3" -m unittest discover -s harnesses/agents-sdk -p test_run.py'
- name: Test kernel RC build guards
run: |
python3 -m unittest discover -s cli/ci -p test_build_kernel_rc.py
python3 -m unittest discover -s cli/ci -p test_check_published_release.py
python3 -m unittest discover -s cli/ci -p test_fetch_previous_release.py
python3 -m unittest discover -s cli/ci -p test_qualify_installed_sdk.py
- name: Fetch pinned genuine previous release inputs
env:
UPGRADE_PLATFORM: ${{ matrix.platform }}${{ runner.os == 'Linux' && '-gnu' || '' }}
run: python3 cli/ci/fetch_previous_release.py --platform "$UPGRADE_PLATFORM" --out "$RUNNER_TEMP/previous-rc3"
- name: Build and verify fresh standalone and npm installations
env:
RC_VERSION: ${{ inputs.version || '0.15.0-rc.1' }}
run: python3 cli/ci/build_kernel_rc.py --version "$RC_VERSION" --out "$RUNNER_TEMP/kernel-rc"
RC_VERSION: ${{ inputs.version || '0.15.0-rc.4' }}
run: python3 cli/ci/build_kernel_rc.py --version "$RC_VERSION" --out "$RUNNER_TEMP/kernel-rc" --agents-sdk-python "$RUNNER_TEMP/agents-sdk-python/bin/python3" --agents-sdk-linux-python-archive "$RUNNER_TEMP/agents-sdk-python-full.tar.zst"
- name: Qualify actual SDK installations and genuine upgrades
env:
RC_VERSION: ${{ inputs.version || '0.15.0-rc.4' }}
EXPECTED_SOURCE: ${{ github.sha }}
run: |
python3 cli/ci/qualify_installed_sdk.py \
--candidate-root "$RUNNER_TEMP/kernel-rc" --source "$EXPECTED_SOURCE" --version "$RC_VERSION" \
--previous-release "$RUNNER_TEMP/previous-rc3" \
--node "$(command -v node)" --npm "$(command -v npm)" \
--out "$RUNNER_TEMP/kernel-rc/installed-qualification"
- uses: Homebrew/actions/setup-homebrew@dc7099b3e807f1e2ecc61f3ecabc840eedd5586a
- name: Rehearse Homebrew against these exact release archives
env:
RC_VERSION: ${{ inputs.version || '0.15.0-rc.1' }}
RC_VERSION: ${{ inputs.version || '0.15.0-rc.4' }}
EXPECTED_SOURCE: ${{ github.sha }}
run: |
"$RUNNER_TEMP/distribution-python/bin/python3" cli/ci/homebrew_rehearsal.py \
--kernel-rc "$RUNNER_TEMP/kernel-rc" \
--expected-source "$EXPECTED_SOURCE" --expected-version "$RC_VERSION" \
--previous-release "$RUNNER_TEMP/previous-rc3" \
--output "$RUNNER_TEMP/kernel-rc/homebrew"
- name: Retain packages and offline evidence
if: always()
Expand All @@ -93,7 +121,19 @@ jobs:
path: |
${{ runner.temp }}/kernel-rc/package
${{ runner.temp }}/kernel-rc/logs
${{ runner.temp }}/kernel-rc/agents-sdk
${{ runner.temp }}/kernel-rc/agents-sdk-native/*.json
${{ runner.temp }}/kernel-rc/agents-sdk-native/*.log
${{ runner.temp }}/kernel-rc/agents-sdk-native/*cleanup-error.txt
${{ runner.temp }}/kernel-rc/agents-sdk-native/supplier
${{ runner.temp }}/kernel-rc/agents-sdk-native/frozen
${{ runner.temp }}/kernel-rc/agents-sdk-native/python-full/python/PYTHON.json
${{ runner.temp }}/kernel-rc/agents-sdk-native/python-full/python/licenses
${{ runner.temp }}/kernel-rc/agents-sdk-runtime/runtime-report.json
${{ runner.temp }}/kernel-rc/agents-sdk-runtime/job/*.log
${{ runner.temp }}/kernel-rc/build-report.json
${{ runner.temp }}/kernel-rc/homebrew
${{ runner.temp }}/kernel-rc/installed-qualification
${{ runner.temp }}/previous-rc3
retention-days: 14
if-no-files-found: warn
4 changes: 4 additions & 0 deletions .github/workflows/cli-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,10 @@ jobs:
env:
GH_TOKEN: ${{ github.token }}
run: python3 cli/ci/publication.py fetch --plan "$RELEASE_PLAN" --artifacts "$RUNNER_TEMP/prose-publication"
- name: Verify retained production SDK source and sibling custody
# The reviewed manifests bind the helper, build receipt and notices
# across standalone/npm payloads. Never rebuild fetched candidates.
run: python3 cli/ci/publication.py verify --plan "$RELEASE_PLAN" --artifacts "$RUNNER_TEMP/prose-publication"
- name: Verify required platform trust, sign artifact digests, and publish exact npm bytes
env:
GH_TOKEN: ${{ github.token }}
Expand Down
14 changes: 11 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,15 @@ Both runners support:
- `--output human|json|jsonl`: rendering, independent of those completion rules.
- `--native-log /absolute/new/file.jsonl`: optional private, bounded native-event capture for that same run. It does not prove fulfillment; see [capture limits](docs/native-capture.md).

For example, after an ordinary build and supplying the provider credential in the process environment:
The packaged local default is the Agents SDK with `gpt-6.1-sol`. Supply `OPENAI_API_KEY` in the process environment, then run your program without harness, model or authentication flags:

```sh
prose run program.md
```

Use `prose cli config explain --json -- run program.md` to inspect the effective configuration without inference. Save explicit alternatives in `~/.prose/cli.toml` or with `prose cli harness use`; see [user configuration](docs/user-configuration.md).

For an explicitly selected Claude route:

```sh
/path/to/prose --harness claude --auth-profile anthropic-api-key \
Expand All @@ -30,7 +38,7 @@ For example, after an ordinary build and supplying the provider credential in th
--output jsonl --native-log /absolute/new-run/native.jsonl run program.md
```

The native-log parent directory must already exist. The image determines how it loads the requested program. Default harness selection is still `openprose`, which reports `HOSTED_UNAVAILABLE`; select an installed harness explicitly. No fallback occurs.
The native-log parent directory must already exist. The image determines how it loads the requested program. Missing SDK credentials give setup instructions; an incomplete SDK installation requires reinstalling the CLI. No harness, model or credential fallback occurs.

## Harnesses and environment profiles

Expand All @@ -39,7 +47,7 @@ The native-log parent directory must already exist. The image determines how it
| Claude | Installed login or explicit `anthropic-api-key`. The API profile adds native `--bare`, which in 2.1.243 restricts tools to Bash/Edit/Read even with an Agent tool request. Native `acceptEdits` is an explicit permission choice, not implied by API auth. |
| Codex | Installed login or `openai-api-key` through a native custom Responses provider. Explicit `workspace-write` or `read-only` maps to native sandbox selection. Context/skill discovery is a separate concern. |
| Prime / OMP | Explicit `provider/model` and credential profile. Provider-key routes use fresh private configuration; separate harness-login routes preserve native stores. Native tool use is supported. OMP validates its discovered tool inventory rather than requiring it empty. |
| Agents SDK | Optional generic `prose-agents-sdk` executable, explicit model and `openai-api-key`, ordinary shell tool, no built-in delegation or cached-login route. See [installation and limits](docs/agents-sdk-adapter.md). |
| Agents SDK | Packaged default `prose-agents-sdk` sibling, `gpt-6.1-sol` and `openai-api-key`. Public search/retrieval, shell files and fresh serial child contexts share aggregate limits; host OS permissions apply. See [installation and limits](docs/agents-sdk-adapter.md). |

Exact admitted versions and platforms are checked at readiness; see the product docs and `cli harness list`. Selected auth is not proof of successful authentication, billing identity, or sufficient capabilities. See [credential routes](docs/api-credentials.md), [permissions](docs/permissions-and-native-notices.md), and [isolated evaluation](docs/isolated-evaluation.md).

Expand Down
12 changes: 9 additions & 3 deletions cli/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -250,9 +250,15 @@ requirements. They currently carry execution evidence for Ubuntu 22.04 only;
other Linux environments remain unverified, and the npm launcher refuses a
detected glibc below that floor before spawning the packaged executable.

The default OpenProse-billed route remains unavailable and fails closed. The
four BYO adapters execute only when explicitly selected and never silently
change harness, wrapper-selected credential group, or billing owner. Harness-
The local built-in selects the packaged Agents SDK and `gpt-6.1-sol`, using
`OPENAI_API_KEY` from the process environment. A complete installation needs
no separately provisioned Python or PATH helper. Other harnesses remain
explicit alternatives, saved in `~/.prose/cli.toml` or selected for one command.
Keep the installed files together when moving a standalone installation. Mac
packages include a support directory beside the CLI and SDK helper; moving only
the executable leaves an incomplete installation.
The explicitly selected OpenProse-billed local route remains unavailable and
fails closed. No adapter silently changes harness, credential group or billing owner. Harness-
internal account/provider routing remains harness-managed. See
[`protocol/STATUS.md`](protocol/STATUS.md) for the evidence and open gates.

Expand Down
Loading
Loading