agentwheel 0.21.7 → 0.22.1
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/README.md +63 -0
- package/dist/index.js +19668 -4112
- package/dist/run-as-fs.py +383 -0
- package/dist/run-as-worker.js +13780 -101
- package/openpack.json +1 -1
- package/package.json +1 -1
- package/skills/agentwheel/SKILL.md +1 -1
- package/skills/agentwheel-discovery/SKILL.md +1 -1
package/README.md
CHANGED
|
@@ -139,6 +139,25 @@ refused unless `--carry-drift` is passed: the dry-run prints the runtime hash, t
|
|
|
139
139
|
`--expected-runtime-hash <sha256>`, and the manifest keeps the recorded hash so the next install
|
|
140
140
|
still reports the drift. Merge and managed-block entries never carry drift.
|
|
141
141
|
|
|
142
|
+
Qualify a Fleet-owned source with `--from-fleet <id>` together with its exact
|
|
143
|
+
`--from-workspace-root`; use `--to-fleet <id>` for a Fleet-owned destination. Both IDs must
|
|
144
|
+
be registered at the specified roots. These options qualify ownership, whereas `--fleet`
|
|
145
|
+
selects the governing workspace. `--from-fleet` cannot be combined with
|
|
146
|
+
`--from-unknown-owner`. For example, preview returning one entry to its original plain owner:
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
agentwheel ownership handoff skills/example-skill --local --agent local-codex --installation-type user \
|
|
150
|
+
--source-state-key codex.user.existing-state \
|
|
151
|
+
--from-workspace-root /fleet/control --from-fleet example-fleet \
|
|
152
|
+
--to-workspace-root /original/workspace --dry-run
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
Reverse handoffs require a fresh reviewed plan against the post-handoff state; they do not
|
|
156
|
+
reuse old manifest revisions or erase audit history. For run-as targets, also pass the reviewed
|
|
157
|
+
`--plan-digest` and `--expected-inventory-revision` when applying. The qualified old/new owner
|
|
158
|
+
identities are included in the native plan, its digest and the audit. Each handoff changes the
|
|
159
|
+
inventory revision, so review subsequent operations against their exact intermediate states.
|
|
160
|
+
|
|
142
161
|
Use `--source-state-key <exact-key>` when an existing source manifest must be selected explicitly.
|
|
143
162
|
This is a command-local equivalent of a named agent's `stateKey`; it does not edit agent configuration,
|
|
144
163
|
move state files, or reconstruct graph locks. The key must be canonical and match the selected adapter
|
|
@@ -422,6 +441,50 @@ current directory, then fallback to the current directory. `--all-detected` is a
|
|
|
422
441
|
for applying to every runtime marker found in the current directory or `--target-root`; `--all` remains
|
|
423
442
|
reserved for configured agents.
|
|
424
443
|
|
|
444
|
+
### Linux service-user targets
|
|
445
|
+
|
|
446
|
+
A named `local-run-as` agent installs into another non-root account's passwd home.
|
|
447
|
+
Run Agentwheel from the caller's workspace: sources, graph locks and receipts stay
|
|
448
|
+
with the caller; confined reads, writes, manifests and rollback run as the service.
|
|
449
|
+
A non-login account works with an explicitly configured noninteractive sudo grant.
|
|
450
|
+
Add the agent/profile to a workspace that already declares its source packages:
|
|
451
|
+
|
|
452
|
+
```jsonc
|
|
453
|
+
{
|
|
454
|
+
"schemaVersion": 4,
|
|
455
|
+
"agents": {
|
|
456
|
+
"service": {
|
|
457
|
+
"adapter": "openclaw",
|
|
458
|
+
"root": "/home/example",
|
|
459
|
+
"transport": "local-run-as",
|
|
460
|
+
"runAs": "example",
|
|
461
|
+
"installationType": "user"
|
|
462
|
+
}
|
|
463
|
+
},
|
|
464
|
+
"profiles": { "service": { "runtimes": [{ "agent": "service" }] } }
|
|
465
|
+
}
|
|
466
|
+
```
|
|
467
|
+
|
|
468
|
+
```bash
|
|
469
|
+
agentwheel plan --local --profile service
|
|
470
|
+
agentwheel --reason "Install reviewed service profile" install --local --profile service
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
Require durable journaling in the workspace mutation policy while retaining its
|
|
474
|
+
revision policy. Linux 5.6+ `openat2`, Python 3 and immutable worker/interpreter
|
|
475
|
+
paths are required. OpenClaw validation additionally needs Linux POSIX ACLs and a
|
|
476
|
+
trusted immutable OpenClaw package; includes, programmatic adapters, arbitrary
|
|
477
|
+
commands and runtime reloads are rejected. See the [transport requirements and
|
|
478
|
+
sudo example](docs/design/artifact-harness-compatibility.md#built-in-matrix).
|
|
479
|
+
|
|
480
|
+
Changing transport creates a distinct state identity. Inspect legacy claims with
|
|
481
|
+
`ownership recovery-plan`, then review the exact JSON plan from `adopt-legacy`,
|
|
482
|
+
`retire-stale`, `release-claim` or `handoff --dry-run --json`. Apply only with its
|
|
483
|
+
matching digest and revisions. These commands preserve runtime bytes and modes;
|
|
484
|
+
a caller-home manifest is never reused as service-home ownership evidence.
|
|
485
|
+
Same-fleet normalization is limited to one service endpoint. Cross-account
|
|
486
|
+
migration and runtime restarts are separate operations.
|
|
487
|
+
|
|
425
488
|
### Target state identity
|
|
426
489
|
|
|
427
490
|
Graph-backed installs keep two target fingerprints with different purposes:
|