@staix/agent-hub 0.20.0 → 0.22.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/CHANGELOG.md +66 -3
- package/README.md +2 -2
- package/docs/agent-notes/README.md +11 -0
- package/docs/agent-notes/adapters.md +7 -3
- package/docs/agent-notes/benchmarks.md +27 -0
- package/docs/agent-notes/budget.md +2 -1
- package/docs/agent-notes/bus.md +3 -3
- package/docs/agent-notes/daemon.md +17 -8
- package/docs/agent-notes/local-worker.md +4 -0
- package/docs/agent-notes/models.md +2 -0
- package/docs/agent-notes/tasks.md +17 -9
- package/docs/agent-notes/tests.md +9 -2
- package/docs/bench.md +1 -1
- package/docs/data-policy.md +2 -0
- package/docs/dogfood.md +39 -4
- package/docs/events.md +2 -1
- package/docs/memory.md +9 -3
- package/docs/operations.md +610 -62
- package/docs/profiles.md +13 -1
- package/docs/quickstart.md +18 -9
- package/docs/research.md +7 -4
- package/docs/sdlc.md +54 -10
- package/docs/security.md +396 -34
- package/docs/smoke.md +133 -0
- package/docs/specs/2026-09-19-agent-hub-design.md +1101 -22
- package/docs/verification/2026-10-27-0.19.0.md +5 -5
- package/docs/verification/2026-10-28-claude-2.1.311-2.1.312-bash-permission.json +635 -0
- package/docs/verification/2026-10-28-claude-2.1.311-2.1.312-permission-transport.json +403 -0
- package/docs/verification/2026-10-28-claude-implementer-permission-triage.md +123 -0
- package/docs/verification/2026-10-28-jcode-0.99.1-usage.md +41 -0
- package/docs/verification/2026-10-28-realpath-name-audit.md +222 -0
- package/docs/verification/2026-10-28-routing-f0bb8ad0.md +1000 -0
- package/docs/verification/2026-10-29-0.21.0.md +61 -0
- package/docs/verification/2026-10-29-model-effort-capabilities.md +123 -0
- package/docs/verification/2026-10-29-modelrouting-b152ddb9.md +953 -0
- package/docs/verification/2026-10-30-0.22.0.md +49 -0
- package/docs/verification/2026-10-30-445-capability-probes.md +172 -0
- package/docs/verification/2026-10-30-bus-delivery-operational-settings.md +77 -0
- package/docs/verification/2026-10-30-jcode-ac4.md +24 -0
- package/docs/verification/2026-10-30-jcode-ac6.md +52 -0
- package/docs/verification/2026-10-30-recovery-wait-settings.md +141 -0
- package/docs/verification/claude-implementer-permission-triage.ts +160 -0
- package/docs/verification/claude-permission-transport-native.py +71 -14
- package/docs/verification/profiles/YYYY-MM-DD-research.md +1 -1
- package/docs/verified.json +15 -15
- package/package.json +2 -2
- package/plugins/agent-hub/.claude-plugin/plugin.json +1 -1
- package/plugins/agent-hub/server.js +1016 -280
- package/src/adapters/acp.ts +79 -3
- package/src/adapters/channel-peer.ts +4 -0
- package/src/adapters/claude-channel.ts +13 -6
- package/src/adapters/claude-implementer.ts +60 -7
- package/src/adapters/codex-appserver.ts +77 -4
- package/src/adapters/conformance/fakes/jcode-agent.ts +6 -2
- package/src/adapters/conformance/kit.ts +3 -9
- package/src/adapters/definitions/builtin-metadata.ts +3 -114
- package/src/adapters/definitions/native-config-defaults.ts +1 -1
- package/src/adapters/definitions/native-config-policy.ts +3 -2
- package/src/adapters/definitions/native-context.ts +12 -0
- package/src/adapters/external-metadata.ts +48 -0
- package/src/adapters/external-modules.ts +63 -3
- package/src/adapters/jcode.ts +6 -2
- package/src/adapters/local-worker.ts +40 -25
- package/src/adapters/native-proof-ports.ts +10 -0
- package/src/adapters/registry-types.ts +4 -0
- package/src/broker/protocol.ts +203 -0
- package/src/broker/server.ts +314 -0
- package/src/broker/store.ts +548 -0
- package/src/cli/bench.ts +3 -2
- package/src/cli/broker.ts +58 -0
- package/src/cli/conductor-recovery.ts +142 -0
- package/src/cli/configured-acp-entry.ts +26 -6
- package/src/cli/console-state.ts +59 -17
- package/src/cli/console.ts +17 -2
- package/src/cli/facts-hook.ts +3 -1
- package/src/cli/help.ts +29 -16
- package/src/cli/identity.ts +25 -10
- package/src/cli/init.ts +34 -7
- package/src/cli/intake-output.ts +33 -0
- package/src/cli/learn-output.ts +38 -0
- package/src/cli/main.ts +334 -73
- package/src/cli/output.ts +41 -1
- package/src/cli/recovery-package.ts +18 -1
- package/src/cli/recovery-waits.ts +26 -0
- package/src/cli/role-holders.ts +35 -0
- package/src/cli/room.ts +304 -0
- package/src/cli/say-input.ts +16 -0
- package/src/cli/schedule-output.ts +49 -0
- package/src/cli/sdlc-output.ts +44 -6
- package/src/cli/smoke-pty-bridge.ts +82 -0
- package/src/cli/smoke-pty.ts +153 -0
- package/src/cli/smoke-run.ts +139 -0
- package/src/cli/smoke-target.ts +130 -0
- package/src/cli/source-output.ts +29 -0
- package/src/cli/task-output.ts +3 -2
- package/src/cli/upgrade-runtime.ts +112 -28
- package/src/cli/upgrade.ts +68 -8
- package/src/hub/ask.ts +76 -12
- package/src/hub/board.ts +132 -22
- package/src/hub/bus.ts +416 -65
- package/src/hub/child-process.ts +2 -0
- package/src/hub/ci-watch.ts +42 -20
- package/src/hub/claude-failure-stage.ts +85 -0
- package/src/hub/claude-shell-wrapper.ts +11 -5
- package/src/hub/conductor.ts +17 -4
- package/src/hub/config-apply.ts +34 -6
- package/src/hub/config-reload.ts +7 -5
- package/src/hub/config-trust.ts +7 -1
- package/src/hub/context-window.ts +33 -3
- package/src/hub/control-client.ts +14 -2
- package/src/hub/corpus-config.ts +34 -0
- package/src/hub/corpus-evidence.ts +184 -0
- package/src/hub/corpus.ts +373 -0
- package/src/hub/cost-governance.ts +26 -0
- package/src/hub/daemon.ts +1209 -183
- package/src/hub/deliverable-files.ts +8 -2
- package/src/hub/delivery-journal.ts +200 -73
- package/src/hub/dogfood-profile.ts +32 -5
- package/src/hub/dogfood-read.ts +6 -2
- package/src/hub/envelope.ts +11 -0
- package/src/hub/eval-gate.ts +131 -0
- package/src/hub/events.ts +1 -1
- package/src/hub/external-instance.ts +69 -0
- package/src/hub/facts.ts +15 -5
- package/src/hub/folder-trigger.ts +223 -0
- package/src/hub/hub-tools.ts +2 -1
- package/src/hub/inference.ts +20 -5
- package/src/hub/instance-config.ts +69 -3
- package/src/hub/instance-execution.ts +6 -2
- package/src/hub/instances.ts +32 -4
- package/src/hub/intake.ts +125 -0
- package/src/hub/learning.ts +117 -0
- package/src/hub/lifecycle.ts +7 -3
- package/src/hub/limits.ts +12 -5
- package/src/hub/native-permission-request.ts +77 -0
- package/src/hub/operational-authority.ts +63 -5
- package/src/hub/operational-settings.ts +154 -0
- package/src/hub/operational-view.ts +1 -1
- package/src/hub/packs.ts +132 -0
- package/src/hub/path-policy.ts +7 -0
- package/src/hub/peer-doing.ts +130 -0
- package/src/hub/peers.ts +12 -0
- package/src/hub/queue-backpressure.ts +58 -0
- package/src/hub/read-tools.ts +2 -0
- package/src/hub/recovery-authority.ts +151 -0
- package/src/hub/recovery-policy.ts +220 -0
- package/src/hub/research.ts +24 -14
- package/src/hub/restart.ts +7 -0
- package/src/hub/routing.ts +54 -11
- package/src/hub/schedules.ts +266 -0
- package/src/hub/sdlc-merge.ts +38 -14
- package/src/hub/sdlc-metrics.ts +32 -10
- package/src/hub/sdlc-queue.ts +7 -1
- package/src/hub/sdlc-release.ts +1 -1
- package/src/hub/sdlc.ts +37 -7
- package/src/hub/security-baseline.ts +38 -0
- package/src/hub/settings.ts +27 -2
- package/src/hub/shipped-packs.ts +8 -0
- package/src/hub/snapshots.ts +72 -6
- package/src/hub/source-read.ts +160 -0
- package/src/hub/sources.ts +311 -0
- package/src/hub/tasks.ts +987 -110
- package/src/hub/workflow.ts +1 -1
- package/src/local/doc-read.ts +69 -0
- package/src/local/proxy.ts +4 -13
- package/src/local/tools.ts +37 -3
- package/src/local/web-fetch-config.ts +43 -0
- package/src/local/web-fetch.ts +183 -0
- package/src/memory/brief.ts +85 -13
- package/src/memory/capture.ts +1 -1
- package/src/rooms/application.ts +114 -0
- package/src/rooms/boundary.ts +103 -0
- package/src/rooms/commands.ts +294 -0
- package/src/rooms/crypto.ts +371 -0
- package/src/rooms/link.ts +584 -0
- package/src/rooms/policy.ts +82 -0
- package/src/rooms/remote-peer.ts +80 -0
- package/src/rooms/service.ts +426 -0
- package/src/rooms/status.ts +146 -0
- package/src/rooms/store.ts +1210 -0
- package/src/rooms/wire.ts +465 -0
- package/src/ui/index.html +91 -4
- package/templates/packs/example.pack.json +13 -0
package/docs/smoke.md
CHANGED
|
@@ -39,6 +39,8 @@
|
|
|
39
39
|
| Antigravity TUI close (#485) | Antigravity P1 | agent-executable | |
|
|
40
40
|
| Managed Pi live receipts (#418 AC8) | none yet (issue #418) | person-only, then agent-executable | the person opts in to a check runner and answers the approvals |
|
|
41
41
|
| Kimi credential probe (#285 AC9) | Kimi usage counting | person-only | the owner's approval of the probe |
|
|
42
|
+
| Six role instances (#525-6, hub card #138 I4) | Six role instances (#525-6) | person-only | native terminal/account starts, the person's sandbox and approval choices, and the live six-instance verdict |
|
|
43
|
+
| Model/effort provider execution (#266 AC1) | Model and effort capability verification (#266 AC1) | external-blocked | isolated configured Kimi session and provider/account fixtures; no login or account/provider edits authorized by this receipt |
|
|
42
44
|
|
|
43
45
|
## Issue #273 operator execution plan (2026-10-16)
|
|
44
46
|
|
|
@@ -1761,6 +1763,8 @@ Qwen recovery source/fake proof: saved ids pass through the driver and CLI to AC
|
|
|
1761
1763
|
|
|
1762
1764
|
Source/fixture proof is recorded in verification/2026-10-11-jcode-peer-contract.md; the live owned-daemon and ACP handshake on 0.94.0 and 0.98.1 in verification/2026-10-19-jcode-0.98.1.md. Unverified: real provider/model, native project MCP discovery and hub-tool receipt, native tool policy and stop/child teardown. Native automatic restoration is withheld because the pinned ACP load does not prove the id. No benchmark comparison or default replacement ran.
|
|
1763
1765
|
|
|
1766
|
+
Historical native-owned hub-tool effects are now recorded in the [ids-only AC4 receipt](verification/2026-10-30-jcode-ac4.md). The [fresh isolated 0.99.1 AC6 re-probe](verification/2026-10-30-jcode-ac6.md) still finds no `session/load` identity echo, so automatic recovery remains withheld; no fresh model turn or persisted-conversation restoration is claimed.
|
|
1767
|
+
|
|
1764
1768
|
### Extra Jcode instances (#685, #368)
|
|
1765
1769
|
|
|
1766
1770
|
Source and fixture coverage: `test/jcode-instances.test.ts` (declaration refusals, the bound of 8, home uniqueness, no relay or credential fields), `test/jcode-instance-peer.test.ts` (separate groups, sockets and homes, stopping one leaves the other, argv is the base argv plus the instance's `-p`, `--model` and `--provider-profile`, launch id per owned process, launcher, doctor) and `test/jcode-instance-daemon.test.ts` (home preflight, no file written under the home, status, hub-tools admission only for an owned launch, a forged `AGENTHUB_PEER_ID` refused, the MCP server with no peer id refusing every tool).
|
|
@@ -2028,3 +2032,132 @@ Kimi usage ceiling: 2.2.0 print stream-json exposes no token counts. Keep unobse
|
|
|
2028
2032
|
## Held deliveries and peer retries (#434 AC8, 2026-10-24)
|
|
2029
2033
|
|
|
2030
2034
|
See [delivery holds and peer retry verification](verification/2026-10-24-delivery-holds-ac8.md) for live evidence of hub-settled held deliveries (39 superseded notices in `resolution_history`) and peer retries (2 peer retry rows in `resolution_history`, 27 rows across Claude, Jcode, and Kimi in `delivery_retry_evidence`), alongside daemon status and queue readbacks.
|
|
2035
|
+
|
|
2036
|
+
|
|
2037
|
+
## Six role instances (#525-6)
|
|
2038
|
+
|
|
2039
|
+
**Status: unverified. Class: person-only.** This is the I4 live leg retained by hub card #138 and [the accepted #525 role-stage contract](specs/2026-09-19-agent-hub-design.md#amendment-roles-per-sdlc-stage-525). No native/account result is recorded by adding this procedure. Fake protocol and daemon acceptance tests do not satisfy this live leg. The six instances below are declared role instances; the person's builtin coordinating session is not a seventh test instance.
|
|
2040
|
+
|
|
2041
|
+
- Use a disposable committed Git repository and a candidate daemon, CLI and Claude plugin built from the same recorded head. Record native versions, account/model identities without credentials, OS, candidate head and project id. Follow the normal setup/authentication steps first; the hub never signs in for the person.
|
|
2042
|
+
- Create registered attached-branch worktrees for the two writing instances before declaring them:
|
|
2043
|
+
|
|
2044
|
+
```sh
|
|
2045
|
+
git worktree add -b smoke-claude-impl .worktrees/claude-impl
|
|
2046
|
+
git worktree add -b smoke-codex-impl .worktrees/codex-impl
|
|
2047
|
+
```
|
|
2048
|
+
|
|
2049
|
+
- Add the following to that disposable project's untracked `.agenthub/config.local.json`, preserving unrelated required setup values, and restart the hub. Restrict this trial's owner routing and reviewer pool to the listed role instances so an unrelated builtin does not satisfy a step.
|
|
2050
|
+
|
|
2051
|
+
```json
|
|
2052
|
+
{
|
|
2053
|
+
"instances": {
|
|
2054
|
+
"claude-plan": { "kind": "claude", "roles": ["planner"] },
|
|
2055
|
+
"claude-impl": { "kind": "claude", "roles": ["implementer"], "start_mode": "headless", "worktree": ".worktrees/claude-impl", "permission_mode": "ask" },
|
|
2056
|
+
"claude-review": { "kind": "claude", "roles": ["reviewer"], "start_mode": "headless" },
|
|
2057
|
+
"codex-plan": { "kind": "codex", "roles": ["planner"], "start_mode": "headless" },
|
|
2058
|
+
"codex-impl": { "kind": "codex", "roles": ["implementer"], "start_mode": "headless", "worktree": ".worktrees/codex-impl" },
|
|
2059
|
+
"codex-review": { "kind": "codex", "roles": ["reviewer"], "start_mode": "headless", "review_mode": "fresh" }
|
|
2060
|
+
},
|
|
2061
|
+
"planner": ["claude-plan", "codex-plan"],
|
|
2062
|
+
"review": { "pool": ["claude", "codex"], "same_family": "never" },
|
|
2063
|
+
"roster": { "claude-plan": true, "claude-impl": true, "claude-review": true, "codex-plan": true, "codex-impl": true, "codex-review": true }
|
|
2064
|
+
}
|
|
2065
|
+
```
|
|
2066
|
+
|
|
2067
|
+
- The person starts each instance with its native command and `--as <id>`: `ahub claude --as claude-plan`, `ahub claude --as claude-impl`, `ahub claude --as claude-review`, `ahub codex --as codex-plan`, `ahub codex --as codex-impl`, and `ahub codex --as codex-review`. Use separate native terminals for the channel/TUI sessions. Headless Claude implementer and fresh reviewer starts may be idle without a child until their task or review arrives; that is not a failed start. Do not reuse a builtin's launch id, peer id, transcript or recorded native session as proof for an extra.
|
|
2068
|
+
- On `codex-plan`, start and resume a native thread through its proxy. Record the read-only request and positive confirmation from the native response, with session/launch identifiers screened. If confirmation is missing, malformed or writable, record the refusal and stop. No adoption or hub delivery may follow that refusal; the positive native start/resume check remains failed or unverified. Do not relabel unknown as read-only. The person's attached TUI can later choose a different native sandbox; record such a choice separately and do not claim an unchangeable hub sandbox.
|
|
2069
|
+
- On `claude-plan`, request a bounded scratch-file mutation and shell operation from its native session, inspect that the facts hook emitted no automatic grant, and let the person choose the native outcome. A native permission setting or explicit native allow is not a hub grant. Confirm neither planner can be assigned a code-write owner role merely because it is a planner. A normal planning write through `Tasks` should still work for the task's effective planner.
|
|
2070
|
+
- Run two non-PII throwaway tasks through real native holders. For task A use `codex-plan` to plan, `claude-impl` to build in its own worktree, and fresh `codex-review` to review. For task B use `claude-plan`, `codex-impl` and `claude-review`. Use the person's documented `ahub task assign <id> <peer> --role planner|owner|reviewer` controls when naming holders; never alter the board directly. Keep each implementer out of its own review, apply the existing family rule, and have the other eligible planner review an authored plan rather than treating a planner's own verdict as independent. Capture the actual assignment/acceptance/done/verdict history and reasons, not just the intended roster.
|
|
2071
|
+
- Compare `ahub status`, `ahub task show <id>` (and `--json`), `ahub route explain <id>`, console Tasks/peer detail and dashboard task detail. Check distinct six ids, the correct form and capable/effective roles, planner/owner/reviewer plus their recorded reasons, and `ownerIsolation` for each writing extra. The planner-only canonical-checkout instances should report not isolated with a fixed reason, rather than be mistaken for isolated code writers. Missing evidence is unknown or not isolated, never success.
|
|
2072
|
+
- Exercise a second turn of a Claude implementer's task and a separate new task, recording that the former resumes its own per-task session and the latter does not inherit it. Keep queues, MCP actors and native sessions distinct while the other role instances remain attached. Stop the disposable trial's runtimes and verify owned-group cleanup without stopping unrelated project peers.
|
|
2073
|
+
- Record a dated receipt here or in `docs/verification/` with the candidate/native versions, six actual instance ids and forms, task ids/holder histories, isolation evidence, read-only confirmations/refusals, planner hook evidence, session/queue separation, cleanup result and any failures or unknowns. Do not copy credentials or private task bodies. Until that receipt exists, this leg remains **unverified** and supplies no native-account or sandbox attestation.
|
|
2074
|
+
|
|
2075
|
+
## Disposable Qwen Q2 runner (#787, task #462)
|
|
2076
|
+
|
|
2077
|
+
`ahub --live-test smoke run qwen-dual-output` runs only the Q2 dual-file protocol leg: submit a fixed synthetic first prompt, submit a second while the first streamed turn is observed running, and require the second user event after the first assistant/message_stop pair. Two assistant/message_stop pairs must complete in order. It never answers a tool approval or sends TUI keys.
|
|
2078
|
+
|
|
2079
|
+
The first slice requires a freshly initialized, uncommitted Git project with no tracked index entries, refs or remotes. Its canonical root must be an immediate `ahub-smoke-*` child of the system temporary directory. It needs its own registered project id, an explicitly set `AGENTHUB_HOME` inside that root, and an existing state directory inside the same root. Linked worktrees, symlinked paths, the default real hub home and ordinary projects are refused. These are disposable-target safety checks, not a sandbox for a malicious executable.
|
|
2080
|
+
|
|
2081
|
+
From a person terminal, prepare the fixture without borrowing an existing project's HOME or state:
|
|
2082
|
+
|
|
2083
|
+
```sh
|
|
2084
|
+
scratch=$(mktemp -d "${TMPDIR:-/tmp}/ahub-smoke-XXXXXX")
|
|
2085
|
+
scratch=$(cd "$scratch" && pwd -P)
|
|
2086
|
+
git -c init.templateDir= init -q "$scratch"
|
|
2087
|
+
export AGENTHUB_HOME="$scratch/hub-home"
|
|
2088
|
+
mkdir -p "$AGENTHUB_HOME" "$scratch/.agenthub/state"
|
|
2089
|
+
ahub --project "$scratch" init
|
|
2090
|
+
ahub --project "$scratch" projects --json
|
|
2091
|
+
```
|
|
2092
|
+
|
|
2093
|
+
Take the fixture's `p_...` id from that last result. Configure `OPENAI_API_KEY`, `OPENAI_BASE_URL` and `OPENAI_MODEL` through the normal account setup; do not paste credentials into the command or a receipt. The runner uses the configured HTTP or HTTPS OpenAI-compatible endpoint. Then run:
|
|
2094
|
+
|
|
2095
|
+
```sh
|
|
2096
|
+
ahub --project "$scratch" --live-test smoke run qwen-dual-output --project-id <fixture-id> --receipt receipt.json --timeout-ms 60000 --json
|
|
2097
|
+
```
|
|
2098
|
+
|
|
2099
|
+
The runner creates a private native HOME and a separate empty Git project beneath the fixture. Qwen gets only the required environment, no caller agent markers, hooks or MCP servers. Its native version must pass the existing `qwen-dual` policy. Linux uses util-linux `script`; macOS uses a Bun PTY bridge because BSD `script` requires a terminal on its parent's stdin. The bridge remains an owned child and its native descendants use the same process-group cleanup. PTY output is drained with a 1 MiB cap and is never logged or saved in the receipt. Events have an 8 MiB cap and individual JSON lines a 64 KiB cap. Deadline, abort, early exit, an approval request, malformed data or failed cleanup cannot produce a passing receipt. Only processes owned by this invocation are stopped. Native files are removed after confirmed cleanup; unconfirmed cleanup leaves its private `.smoke-run-*` directory for inspection.
|
|
2100
|
+
|
|
2101
|
+
The new receipt must be a previously absent file directly under the fixture root. It contains fixed schema/leg/outcome/reason names, boolean checks, counts and timings only. It contains no prompt, native session id, credential, endpoint, model name, native output or filesystem path. `--json` prints that same document; the default output is a short outcome/count summary. Each invocation uses the existing ids-only CLI audit, including delegated `--live-test` invocations. Never delete a fixture whose cleanup is unconfirmed.
|
|
2102
|
+
|
|
2103
|
+
Real-account Q2 receipt: **UNVERIFIED**. The conductor runs this leg with the person after merge. Fake PTY/protocol tests are implementation evidence only. Q3 approvals, Q5 FIFO and Q6 resume are later executable legs. Q4 remains the known native Qwen turn-stop limitation documented in the 2026-10-25 T0 receipt; the runner's owned-group timeout cleanup does not claim a supported in-session turn interruption.
|
|
2104
|
+
|
|
2105
|
+
## Capability source probes (#445 C0)
|
|
2106
|
+
|
|
2107
|
+
The 2026-10-30 [receipt](verification/2026-10-30-445-capability-probes.md) records what Kimi 2.3.2, Qwen 0.26.1 and Codex 0.166.0 expose for capability discovery, probed in isolated, credential-free homes with a network-denied profile and real config files checked unchanged. Listing legs are live; skill execution on each agent needs an account and stays **UNVERIFIED** until #445 C4. Design consequences: [Capability invocation (#445)](specs/2026-09-19-agent-hub-design.md#capability-invocation-445).
|
|
2108
|
+
|
|
2109
|
+
## Model and effort capability verification (#266 AC1)
|
|
2110
|
+
|
|
2111
|
+
The 2026-10-29 [version-bound capability table](specs/2026-09-19-agent-hub-design.md#vendor-model-and-effort-controls-266-ac1)
|
|
2112
|
+
and [sanitized native receipt](verification/2026-10-29-model-effort-capabilities.md)
|
|
2113
|
+
record agent-executed, model-free configuration/control observations: Codex
|
|
2114
|
+
0.165.0, Claude Code 2.1.312 and Kimi 2.3.2. Every invocation used fresh isolated
|
|
2115
|
+
`HOME`, `CLAUDE_CONFIG_DIR`, `CODEX_HOME`, `KIMI_CODE_HOME` and XDG directories,
|
|
2116
|
+
a scratch cwd, an environment without real credentials and a network-denied
|
|
2117
|
+
Seatbelt profile. Calls were sequential and bounded. No login, update, account
|
|
2118
|
+
or saved provider configuration command was run. Native input/output text,
|
|
2119
|
+
session ids and usage data are absent from the receipt.
|
|
2120
|
+
|
|
2121
|
+
Observed outcomes:
|
|
2122
|
+
|
|
2123
|
+
- Codex launch model/effort config and thread overrides read back as requested.
|
|
2124
|
+
A per-turn replacement survived interrupt and no-override resume; permission
|
|
2125
|
+
and sandbox readbacks were unchanged. The turn did not complete, and no
|
|
2126
|
+
provider-serving claim follows from the frontend state.
|
|
2127
|
+
- Claude accepted launch model/effort flags, acknowledged an in-session model
|
|
2128
|
+
change and returned the selected model family. Launch effort status and an
|
|
2129
|
+
in-session effort change both read back as requested in print mode. The
|
|
2130
|
+
inputs were local slash commands, with no inference prompt sent to a provider.
|
|
2131
|
+
- Kimi initialize passed; session creation returned `-32000`. Runtime model and
|
|
2132
|
+
graded-effort controls remain **UNVERIFIED** in this fixture. A missing or
|
|
2133
|
+
rejected session is not evidence that the methods are unsupported.
|
|
2134
|
+
|
|
2135
|
+
To repeat the model-free leg, create a fresh private scratch cwd and distinct
|
|
2136
|
+
HOME/config roots for each process. Clear credential, gateway, agent and provider
|
|
2137
|
+
overrides from the child environment; disable ancillary traffic and deny network
|
|
2138
|
+
access. Do not copy a real account or provider config. Record only versions,
|
|
2139
|
+
request counts and fixed outcomes, and terminate/reap the owned process on a
|
|
2140
|
+
short deadline.
|
|
2141
|
+
|
|
2142
|
+
1. Read native `--version`/`--help`. For Codex, generate the installed protocol
|
|
2143
|
+
schema with `app-server generate-json-schema --experimental --out <scratch>`.
|
|
2144
|
+
2. Codex: initialize, inspect model/config metadata, create a read-only thread,
|
|
2145
|
+
then compare turn overrides with no-override resume readback. Keep any
|
|
2146
|
+
disposable input in memory and out of the receipt; interrupt the one bounded
|
|
2147
|
+
attempt before cleanup. Compare permission/sandbox metadata too.
|
|
2148
|
+
3. Claude: initialize a tool-free, no-session-persistence print/control process.
|
|
2149
|
+
Compare launch effort with `/effort status`, set a different session effort
|
|
2150
|
+
and query status again. Use `set_model` for the model control check; do not
|
|
2151
|
+
infer provider selection from an alias echo alone.
|
|
2152
|
+
4. Kimi: initialize and create an empty-MCP session. If it refuses, stop and mark
|
|
2153
|
+
the setting cells unverified. Otherwise inspect the advertised config options
|
|
2154
|
+
before sending a setter. `session/set_mode` is permission policy, not effort.
|
|
2155
|
+
|
|
2156
|
+
Remaining **UNVERIFIED** legs: Kimi model selection/effort readback in an authorized
|
|
2157
|
+
isolated configured session; actual provider model/effort application for all
|
|
2158
|
+
three vendors; a real interactive Claude session; and a two-arm effort matrix.
|
|
2159
|
+
A later model-free fake-endpoint fixture needs its scope approved first; a real
|
|
2160
|
+
account fixture needs the person's account setup. Ask the planner before any
|
|
2161
|
+
quota-heavy run. Never publish prompts, tokens, credentials, endpoints, native
|
|
2162
|
+
transcripts or session ids as evidence. This slice implements no task `exec`,
|
|
2163
|
+
routing policy or matrix runner.
|