agentwheel 0.21.6 → 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/README.md +44 -0
- package/dist/index.js +19803 -4102
- 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
|
@@ -422,6 +422,50 @@ current directory, then fallback to the current directory. `--all-detected` is a
|
|
|
422
422
|
for applying to every runtime marker found in the current directory or `--target-root`; `--all` remains
|
|
423
423
|
reserved for configured agents.
|
|
424
424
|
|
|
425
|
+
### Linux service-user targets
|
|
426
|
+
|
|
427
|
+
A named `local-run-as` agent installs into another non-root account's passwd home.
|
|
428
|
+
Run Agentwheel from the caller's workspace: sources, graph locks and receipts stay
|
|
429
|
+
with the caller; confined reads, writes, manifests and rollback run as the service.
|
|
430
|
+
A non-login account works with an explicitly configured noninteractive sudo grant.
|
|
431
|
+
Add the agent/profile to a workspace that already declares its source packages:
|
|
432
|
+
|
|
433
|
+
```jsonc
|
|
434
|
+
{
|
|
435
|
+
"schemaVersion": 4,
|
|
436
|
+
"agents": {
|
|
437
|
+
"service": {
|
|
438
|
+
"adapter": "openclaw",
|
|
439
|
+
"root": "/home/example",
|
|
440
|
+
"transport": "local-run-as",
|
|
441
|
+
"runAs": "example",
|
|
442
|
+
"installationType": "user"
|
|
443
|
+
}
|
|
444
|
+
},
|
|
445
|
+
"profiles": { "service": { "runtimes": [{ "agent": "service" }] } }
|
|
446
|
+
}
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
```bash
|
|
450
|
+
agentwheel plan --local --profile service
|
|
451
|
+
agentwheel --reason "Install reviewed service profile" install --local --profile service
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
Require durable journaling in the workspace mutation policy while retaining its
|
|
455
|
+
revision policy. Linux 5.6+ `openat2`, Python 3 and immutable worker/interpreter
|
|
456
|
+
paths are required. OpenClaw validation additionally needs Linux POSIX ACLs and a
|
|
457
|
+
trusted immutable OpenClaw package; includes, programmatic adapters, arbitrary
|
|
458
|
+
commands and runtime reloads are rejected. See the [transport requirements and
|
|
459
|
+
sudo example](docs/design/artifact-harness-compatibility.md#built-in-matrix).
|
|
460
|
+
|
|
461
|
+
Changing transport creates a distinct state identity. Inspect legacy claims with
|
|
462
|
+
`ownership recovery-plan`, then review the exact JSON plan from `adopt-legacy`,
|
|
463
|
+
`retire-stale`, `release-claim` or `handoff --dry-run --json`. Apply only with its
|
|
464
|
+
matching digest and revisions. These commands preserve runtime bytes and modes;
|
|
465
|
+
a caller-home manifest is never reused as service-home ownership evidence.
|
|
466
|
+
Same-fleet normalization is limited to one service endpoint. Cross-account
|
|
467
|
+
migration and runtime restarts are separate operations.
|
|
468
|
+
|
|
425
469
|
### Target state identity
|
|
426
470
|
|
|
427
471
|
Graph-backed installs keep two target fingerprints with different purposes:
|