agentwheel 0.16.6 → 0.18.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/AGENT.md +29 -3
- package/README.md +73 -41
- package/dist/{chunk-PKAPR55N.js → chunk-UQLRZV5W.js} +28 -0
- package/dist/{identify-VV7SXUIQ.js → identify-ZL46CENS.js} +1 -1
- package/dist/index.js +3878 -1199
- package/install.md +12 -5
- package/llms.txt +7 -1
- package/openpack.json +1 -1
- package/package.json +4 -4
- package/skills/agentwheel/SKILL.md +82 -28
- package/skills/agentwheel-artifact-evolution/SKILL.md +42 -0
- package/skills/agentwheel-artifact-evolution/agents/openai.yaml +4 -0
- package/skills/agentwheel-discovery/SKILL.md +1 -1
- package/skills/agentwheel/references/ct111-selfhost-instruction-activation.md +0 -24
- package/skills/agentwheel/references/fleet-control-cleanup-ct107-node-and-effective-adapters.md +0 -39
- package/skills/agentwheel/references/fleet-plugin-rollouts.md +0 -69
- package/skills/agentwheel/references/harness-path-map-rules-2026-06-13.md +0 -98
- package/skills/agentwheel/references/hermes-profile-scoped-skill-rollout.md +0 -43
package/install.md
CHANGED
|
@@ -28,16 +28,17 @@ agentwheel --version
|
|
|
28
28
|
agentwheel --help
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
If it is missing
|
|
31
|
+
If it is missing or older than the config requires, install the current CLI with the package
|
|
32
|
+
manager already available on the host:
|
|
32
33
|
|
|
33
34
|
```bash
|
|
34
|
-
npm i -g agentwheel
|
|
35
|
+
npm i -g agentwheel@latest
|
|
35
36
|
```
|
|
36
37
|
|
|
37
38
|
Prefer pnpm only when the host already uses pnpm for global tools:
|
|
38
39
|
|
|
39
40
|
```bash
|
|
40
|
-
pnpm add -g agentwheel
|
|
41
|
+
pnpm add -g agentwheel@latest
|
|
41
42
|
```
|
|
42
43
|
|
|
43
44
|
Verify after installation:
|
|
@@ -47,6 +48,11 @@ agentwheel --version
|
|
|
47
48
|
agentwheel doctor --help
|
|
48
49
|
```
|
|
49
50
|
|
|
51
|
+
Named fleets require a schema-v3-capable CLI. Upgrade Agentwheel first, verify
|
|
52
|
+
`agentwheel --version` and `agentwheel fleet --help`, then create, register, inspect, or plan fleet
|
|
53
|
+
state. Do not rewrite the config to an older schema or remove named-fleet data to make an old CLI
|
|
54
|
+
accept it.
|
|
55
|
+
|
|
50
56
|
## Install The Companion Skills
|
|
51
57
|
|
|
52
58
|
Pick the adapter that matches the active runtime:
|
|
@@ -87,7 +93,7 @@ If the user wants to preview first, add `--dry-run` to the `install` command.
|
|
|
87
93
|
Browse the public catalogue:
|
|
88
94
|
|
|
89
95
|
```text
|
|
90
|
-
https://
|
|
96
|
+
https://www.nestdev.it/agentwheel/catalogue.html
|
|
91
97
|
```
|
|
92
98
|
|
|
93
99
|
Install an OpenPack package:
|
|
@@ -112,7 +118,7 @@ If a fleet profile declares runtime `reloadCommands`, run reloads or service res
|
|
|
112
118
|
explicitly approved:
|
|
113
119
|
|
|
114
120
|
```bash
|
|
115
|
-
agentwheel install --profile extra-message-policy --execute-plugins --reload-runtimes
|
|
121
|
+
agentwheel install --fleet example-fleet --profile extra-message-policy --execute-plugins --reload-runtimes
|
|
116
122
|
```
|
|
117
123
|
|
|
118
124
|
Draft a catalogue submission for a public repository:
|
|
@@ -128,4 +134,5 @@ npx agentwheel@latest registry publish https://github.com/owner/repo
|
|
|
128
134
|
- The management skill is installed if the user requested it.
|
|
129
135
|
- The discovery skill is installed only if the user requested proactive suggestions.
|
|
130
136
|
- Any catalogue resource install uses the adapter and installation type the user intended.
|
|
137
|
+
- Desired-state scope is explicit when it matters: `--user`, `--local`, or `--fleet <fleet-id>`.
|
|
131
138
|
- Catalogue submissions use `agentwheel registry publish` unless the user explicitly wants a manual registry PR.
|
package/llms.txt
CHANGED
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
- README: https://github.com/NestDevLab/agentwheel#readme
|
|
8
8
|
- AI install handoff: https://github.com/NestDevLab/agentwheel/blob/main/install.md
|
|
9
9
|
- AI agent guide: https://github.com/NestDevLab/agentwheel/blob/main/AGENT.md
|
|
10
|
-
- Public
|
|
10
|
+
- Public site: https://www.nestdev.it/agentwheel/
|
|
11
|
+
- Public catalogue: https://www.nestdev.it/agentwheel/catalogue.html
|
|
11
12
|
|
|
12
13
|
## Specs And Design
|
|
13
14
|
|
|
@@ -25,3 +26,8 @@ npm i -g agentwheel
|
|
|
25
26
|
agentwheel doctor --adapter codex --local
|
|
26
27
|
agentwheel install github:NestDevLab/agentwheel --adapter codex --local --skill agentwheel
|
|
27
28
|
```
|
|
29
|
+
|
|
30
|
+
Named fleets are optional and require a schema-v3-capable Agentwheel CLI. Select exactly one
|
|
31
|
+
desired-state scope when it matters: `--user`, `--local`, or `--fleet <fleet-id>`. Upgrade and
|
|
32
|
+
verify `agentwheel fleet --help` before creating, registering, or reading fleet state; see the fleet
|
|
33
|
+
configuration guide for registration, plan-digested normalization, and journal recovery.
|
package/openpack.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentwheel",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.18.0",
|
|
4
4
|
"description": "Weave skills, rules, and instructions across every AI agent.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"type": "git",
|
|
9
9
|
"url": "git+https://github.com/NestDevLab/agentwheel.git"
|
|
10
10
|
},
|
|
11
|
-
"homepage": "https://
|
|
11
|
+
"homepage": "https://www.nestdev.it/agentwheel/",
|
|
12
12
|
"bugs": {
|
|
13
13
|
"url": "https://github.com/NestDevLab/agentwheel/issues"
|
|
14
14
|
},
|
|
@@ -42,9 +42,9 @@
|
|
|
42
42
|
},
|
|
43
43
|
"scripts": {
|
|
44
44
|
"build": "tsup && chmod +x dist/index.js",
|
|
45
|
-
"check-release-version": "node scripts/check-release-version.mjs",
|
|
46
45
|
"prepack": "pnpm build",
|
|
47
|
-
"
|
|
46
|
+
"release:check": "node scripts/release-check.mjs",
|
|
47
|
+
"release:prepare": "node scripts/release-prepare.mjs",
|
|
48
48
|
"test": "vitest run",
|
|
49
49
|
"typecheck": "tsc --noEmit"
|
|
50
50
|
},
|
|
@@ -5,7 +5,7 @@ allowed-tools: [Bash]
|
|
|
5
5
|
license: MIT
|
|
6
6
|
metadata:
|
|
7
7
|
author: NestDevLab
|
|
8
|
-
version: "0.
|
|
8
|
+
version: "0.18.0"
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# agentwheel
|
|
@@ -19,6 +19,7 @@ Mental model:
|
|
|
19
19
|
- `add` records desired packages.
|
|
20
20
|
- `install` makes the declared state true in the target runtime.
|
|
21
21
|
- `update` re-resolves tracking packages, then applies.
|
|
22
|
+
- `skill update <name>` maps a configured skill to its owning package and reconciles only that skill plus its genuine transitive composition inputs; sibling artifacts keep their runtime bytes and manifest/lock state.
|
|
22
23
|
- `uninstall` removes configured packages and their managed runtime output.
|
|
23
24
|
|
|
24
25
|
## Safety Rules
|
|
@@ -53,9 +54,10 @@ To add and install in one step:
|
|
|
53
54
|
agentwheel install github:owner/repo --adapter codex,claude
|
|
54
55
|
```
|
|
55
56
|
|
|
56
|
-
Explicit source installs with explicit adapters default to user-level artifacts. Use
|
|
57
|
-
|
|
58
|
-
`-i/--installation-type <type>`
|
|
57
|
+
Explicit source installs with explicit adapters default to user-level artifacts. Use exactly one of
|
|
58
|
+
`--user`, `--local`, or `--fleet <fleet-id>` when desired-state scope matters. Use
|
|
59
|
+
`-i/--installation-type <type>` for the runtime layout inside that scope and
|
|
60
|
+
`-t/--target-root <project>` for an explicit target root. Named fleets are optional.
|
|
59
61
|
|
|
60
62
|
## Workspace Setup
|
|
61
63
|
|
|
@@ -276,9 +278,10 @@ agentwheel install github:owner/repo --adapter codex,claude
|
|
|
276
278
|
```
|
|
277
279
|
|
|
278
280
|
Explicit source installs with explicit adapters default to documented user-level installs. Pass
|
|
279
|
-
`--local
|
|
280
|
-
|
|
281
|
-
more than one type and no CLI/context default applies,
|
|
281
|
+
`--user`, `--local`, or `--fleet <fleet-id>` to select one desired-state scope, and use
|
|
282
|
+
`-i/--installation-type <type>` for the runtime layout inside that scope. If a package can be
|
|
283
|
+
installed in more than one type and no CLI/context default applies, Agentwheel fails instead of
|
|
284
|
+
guessing.
|
|
282
285
|
|
|
283
286
|
Target selection order is `--target-root`, then `--agent`, then runtime auto-detection from the current directory, then the current directory.
|
|
284
287
|
|
|
@@ -293,32 +296,46 @@ agentwheel status --all
|
|
|
293
296
|
agentwheel status --profile daily
|
|
294
297
|
```
|
|
295
298
|
|
|
296
|
-
For
|
|
299
|
+
For a named fleet, prefer `agentwheel status --fleet <fleet-id> --profile <name>` over
|
|
297
300
|
direct agent status; profile status uses the same runtime resolution, adapter
|
|
298
301
|
config, installation type, and graph lock fingerprinting as
|
|
299
|
-
`install --profile <name>`. If
|
|
300
|
-
`agentwheel status --all` checks that profile.
|
|
302
|
+
`install --fleet <fleet-id> --profile <name>`. If that fleet defines a profile named `all`,
|
|
303
|
+
`agentwheel status --fleet <fleet-id> --all` checks that profile.
|
|
301
304
|
|
|
302
|
-
## Named Agents And Profiles
|
|
305
|
+
## Named Fleets, Agents, And Profiles
|
|
303
306
|
|
|
304
|
-
|
|
307
|
+
Named fleets are optional control-plane configurations. Select one explicitly with
|
|
308
|
+
`--fleet <fleet-id>`; ordinary user and local work does not require fleet registration. User,
|
|
309
|
+
local, and fleet scopes are isolated desired state: Agentwheel does not merge them, and no fleet
|
|
310
|
+
has global priority.
|
|
311
|
+
|
|
312
|
+
Named fleets require a schema-v3-capable Agentwheel CLI. Upgrade first, verify
|
|
313
|
+
`agentwheel --version` and `agentwheel fleet --help`, then create or register fleet state. Do not
|
|
314
|
+
downgrade the config, strip named-fleet data, or run an old CLI against it.
|
|
305
315
|
|
|
306
316
|
Current config shape:
|
|
307
317
|
|
|
308
318
|
```json
|
|
309
319
|
{
|
|
310
|
-
"schemaVersion":
|
|
311
|
-
"
|
|
312
|
-
"
|
|
320
|
+
"schemaVersion": 3,
|
|
321
|
+
"fleetId": "example-fleet",
|
|
322
|
+
"packages": [
|
|
323
|
+
{
|
|
324
|
+
"name": "core-agent-pack",
|
|
325
|
+
"source": "github:example-org/core-agent-pack",
|
|
326
|
+
"driver": "git",
|
|
327
|
+
"adapter": "codex",
|
|
328
|
+
"installationType": "local",
|
|
329
|
+
"mode": "tracking"
|
|
330
|
+
}
|
|
331
|
+
],
|
|
313
332
|
"agents": {
|
|
314
|
-
"lab-codex": { "adapter": "codex", "installationType": "local", "root": "
|
|
315
|
-
"lab-claude": { "adapter": "claude", "installationType": "local", "root": "$HOME/project" }
|
|
333
|
+
"lab-codex": { "adapter": "codex", "installationType": "local", "root": "/workspace/project" }
|
|
316
334
|
},
|
|
317
335
|
"profiles": {
|
|
318
336
|
"daily": {
|
|
319
337
|
"runtimes": [
|
|
320
|
-
{ "agent": "lab-codex" }
|
|
321
|
-
{ "agent": "lab-claude" }
|
|
338
|
+
{ "agent": "lab-codex" }
|
|
322
339
|
]
|
|
323
340
|
}
|
|
324
341
|
}
|
|
@@ -328,14 +345,30 @@ Current config shape:
|
|
|
328
345
|
Use named targets:
|
|
329
346
|
|
|
330
347
|
```bash
|
|
331
|
-
agentwheel
|
|
332
|
-
agentwheel
|
|
333
|
-
agentwheel
|
|
334
|
-
agentwheel install --
|
|
335
|
-
agentwheel install --
|
|
336
|
-
agentwheel install --profile daily
|
|
348
|
+
agentwheel fleet register example-fleet --root /srv/agentwheel/fleets/example-fleet --required-package core-agent-pack
|
|
349
|
+
agentwheel fleet list
|
|
350
|
+
agentwheel fleet show example-fleet
|
|
351
|
+
agentwheel install --fleet example-fleet --agent lab-codex --dry-run
|
|
352
|
+
agentwheel install --fleet example-fleet --all --dry-run
|
|
353
|
+
agentwheel install --fleet example-fleet --profile daily --dry-run
|
|
337
354
|
```
|
|
338
355
|
|
|
356
|
+
An intended runtime path owned by another scope is a blocking conflict even when the bytes match.
|
|
357
|
+
Use the dedicated fleet normalization workflow: preview the transfer, review its exact plan digest,
|
|
358
|
+
then apply only the unchanged plan. Never remove the source declaration first or hand-edit runtime
|
|
359
|
+
output to manufacture a clean plan.
|
|
360
|
+
|
|
361
|
+
```bash
|
|
362
|
+
agentwheel fleet normalize example-fleet --from user --package core-agent-pack --json
|
|
363
|
+
agentwheel fleet normalize example-fleet --from user --package core-agent-pack \
|
|
364
|
+
--plan-digest <reviewed-sha256> --apply
|
|
365
|
+
agentwheel fleet normalize example-fleet --from user --recover
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
`fleetId` in the fleet config must match the registry key. Every repeatable
|
|
369
|
+
`--required-package` must name a package declared by that fleet. Recovery is only for a pending
|
|
370
|
+
journal and must fail if recorded configs, manifests, or graph locks changed externally.
|
|
371
|
+
|
|
339
372
|
## Adapters
|
|
340
373
|
|
|
341
374
|
Built-in adapters:
|
|
@@ -381,9 +414,9 @@ agentwheel update --all --dry-run
|
|
|
381
414
|
agentwheel update --profile daily --dry-run
|
|
382
415
|
```
|
|
383
416
|
|
|
384
|
-
For
|
|
385
|
-
`install --profile <name>` when tracking packages should move forward. If
|
|
386
|
-
|
|
417
|
+
For a named fleet, use `agentwheel update --fleet <fleet-id> --profile <name>` before
|
|
418
|
+
`install --fleet <fleet-id> --profile <name>` when tracking packages should move forward. If that
|
|
419
|
+
fleet defines a profile named `all`, `agentwheel update --fleet <fleet-id> --all` checks that
|
|
387
420
|
profile.
|
|
388
421
|
|
|
389
422
|
Limit an update to one configured package:
|
|
@@ -395,6 +428,15 @@ agentwheel update team-agent-pack
|
|
|
395
428
|
|
|
396
429
|
Named package updates preserve artifacts owned by other configured roots, including unrelated drift.
|
|
397
430
|
|
|
431
|
+
For one configured skill, resolve its owner and reconcile only that skill plus genuine transitive composition inputs:
|
|
432
|
+
|
|
433
|
+
```bash
|
|
434
|
+
agentwheel skill update code-review --fleet example-fleet --profile daily --dry-run
|
|
435
|
+
agentwheel skill update code-review --fleet example-fleet --profile daily
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
Pinned owners use install semantics; tracking owners re-resolve. Sibling artifacts from the same package retain their runtime bytes and manifest/graph-lock entries; only composition inputs actually used by the requested skill join the update scope. Unrelated configured packages are not resolved. If ownership is ambiguous, pass `--package <name>`. Use `--adopt` only after explicit approval of the dry-run's unmanaged destinations.
|
|
439
|
+
|
|
398
440
|
Advance one tracking dependency while unrelated graph nodes remain locked:
|
|
399
441
|
|
|
400
442
|
```bash
|
|
@@ -468,6 +510,18 @@ By default, uninstall keeps drifted managed files. Use `--force` only with expli
|
|
|
468
510
|
agentwheel uninstall team-agent-pack --force
|
|
469
511
|
```
|
|
470
512
|
|
|
513
|
+
For a one-time MCP rename, use a dedicated cutover workspace with one legacy MCP artifact and an
|
|
514
|
+
explicit agent `stateKey`. Preview each runtime separately:
|
|
515
|
+
|
|
516
|
+
```bash
|
|
517
|
+
agentwheel mcp retire legacy-mcp --agent legacy-codex --from-workspace-root /exact/old/workspace --dry-run
|
|
518
|
+
agentwheel mcp retire legacy-mcp --agent legacy-claude --dry-run
|
|
519
|
+
```
|
|
520
|
+
|
|
521
|
+
Require exactly one `REMOVE`, the expected target and legacy server, and zero drift/conflict.
|
|
522
|
+
Unexpected owner, manifest contents, arguments, environment, or MCP fields are blockers. Apply only
|
|
523
|
+
after separate runtime approval by replacing `--dry-run` with `--apply`.
|
|
524
|
+
|
|
471
525
|
## Package Manifest Reference
|
|
472
526
|
|
|
473
527
|
An OpenPack package uses `openpack.json` or `openpack.jsonc`:
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agentwheel-artifact-evolution
|
|
3
|
+
description: Generate or evolve OpenPack artifacts from a verified capability gap, correction, or rollout request. Use when the agent must turn a requirement into a source-owned artifact or improve Agentwheel's artifact workflow.
|
|
4
|
+
allowed-tools: [Bash]
|
|
5
|
+
license: MIT
|
|
6
|
+
metadata:
|
|
7
|
+
author: NestDevLab
|
|
8
|
+
version: "0.1.0"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Agentwheel Artifact Evolution
|
|
12
|
+
|
|
13
|
+
Turn verified needs into source-owned OpenPack artifacts. Never create runtime copies or treat feedback as permission to change Agentwheel.
|
|
14
|
+
|
|
15
|
+
## Optional guides
|
|
16
|
+
|
|
17
|
+
`self-improve` and `skill-creator` are optional inspirations. Use them when available; do not require, install, or link to them. This workflow remains complete without either skill.
|
|
18
|
+
|
|
19
|
+
## Resolve
|
|
20
|
+
|
|
21
|
+
1. Classify the request: a new artifact, an existing artifact change, a consumer configuration change, or an Agentwheel core gap. Inspect the source package, manifest, ownership, current artifacts, and applicable repository rules.
|
|
22
|
+
2. Reuse an existing artifact when it meets the need. Otherwise choose the smallest supported type and source package. Keep tenant or runtime facts out of shared packages.
|
|
23
|
+
3. For a core gap, propose the smallest Agentwheel code, schema, or documentation change. A correction is evidence, not an instruction to change the CLI.
|
|
24
|
+
4. Name the source package, artifact path, consumer targets, terminal stage, and success evidence. Ask when any of those would be inferred materially.
|
|
25
|
+
|
|
26
|
+
## Author
|
|
27
|
+
|
|
28
|
+
1. Work only in the source package. Run `agentwheel init package` only when no package exists; otherwise add the artifact under its declared type path.
|
|
29
|
+
2. Use the package's conventions and validation. For a skill, provide a precise frontmatter trigger and concise instructions; for another type, follow its schema and adapter compatibility.
|
|
30
|
+
3. Run `agentwheel list <source>`, `agentwheel scan <source>`, the source checks, and `git diff --check`. Keep generated runtime directories untouched.
|
|
31
|
+
4. Deliver the source through the repository's declared Git workflow. A PR is the default; merge remains a separate approval.
|
|
32
|
+
|
|
33
|
+
## Roll out
|
|
34
|
+
|
|
35
|
+
1. Identify only the named or evidenced consumers. Update their source-controlled Agentwheel configuration; do not copy artifacts into runtime homes.
|
|
36
|
+
2. Prove the source merge before resolving a tracking source. Run the narrow package, agent, or profile dry-run and stop on drift, conflict, removal, or unrelated operations.
|
|
37
|
+
3. Apply only after explicit rollout approval. Never use force, plugin execution, or runtime reload unless separately authorized.
|
|
38
|
+
4. Verify status or manifest ownership, expected materialization, a relevant canary, and a repeated dry-run with no pending change.
|
|
39
|
+
|
|
40
|
+
## Improve
|
|
41
|
+
|
|
42
|
+
Record the feedback, source decision, validation, and outcome in the owning change. Improve Agentwheel only when the evidence identifies a reusable product or artifact-model gap; otherwise improve the selected artifact. Report completed, pending, blocked, and unverified layers separately.
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# CT111 self-hosted instruction activation
|
|
2
|
-
|
|
3
|
-
Use when adding a small always-loaded behavior rule to YehonalBot/Drassil on CT111 without importing unrelated core-private skills.
|
|
4
|
-
|
|
5
|
-
Facts/pitfall:
|
|
6
|
-
- CT111 (`ct111-openclaw`) owns its own AgentWheel plane under `/root/src/nestdevlab/fleet-control/profiles/ct111-selfhost`; do not install to CT111 from CT107.
|
|
7
|
-
- OpenClaw instruction artifacts often target the same runtime file: `/root/.openclaw/workspace/AGENTS.md`.
|
|
8
|
-
- Adding a second selected `instructions/<rule>.md` artifact from `agent-core-toolkit-private` can create duplicate instruction targets with different content. AgentWheel may skip one duplicate or report drift on the managed block.
|
|
9
|
-
|
|
10
|
-
Preferred pattern:
|
|
11
|
-
1. Keep the broad source package selected narrowly; do not add all of `agent-core-toolkit-private` just to deliver one rule.
|
|
12
|
-
2. If the target already has a domain/persona `instructions/AGENTS.md` artifact, compose the new small behavior fragment into that existing artifact instead of adding a separate instruction artifact to the same destination.
|
|
13
|
-
3. Put the behavior text in the domain toolkit, e.g. `agent-drassil-toolkit-private/fragments/self-improve-activation.md`.
|
|
14
|
-
4. Add one compose include near the top of the domain `AGENTS.md` composition, usually immediately after `core:fragments/core-base.md` and before role overlays:
|
|
15
|
-
```json
|
|
16
|
-
{ "include": "fragments/self-improve-activation.md" }
|
|
17
|
-
```
|
|
18
|
-
5. Validate JSON/OpenPack selection, then run CT111 dry-run in place:
|
|
19
|
-
```bash
|
|
20
|
-
ssh ct111-openclaw 'cd /root/src/nestdevlab/fleet-control/profiles/ct111-selfhost && npx --yes agentwheel@latest install --profile ct111-selfhost --dry-run --yes'
|
|
21
|
-
```
|
|
22
|
-
6. Treat `UPDATE instructions/AGENTS.md -> .openclaw/workspace/AGENTS.md` as the expected dry-run signal. Do not apply if unrelated drift/plugin operations are present unless the user approves that exact scope.
|
|
23
|
-
|
|
24
|
-
This pattern preserves narrow delivery: the future runtime receives the behavior inside its existing AGENTS managed block without importing unrelated core-private skills or creating competing instruction blocks.
|
package/skills/agentwheel/references/fleet-control-cleanup-ct107-node-and-effective-adapters.md
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
# Fleet control cleanup: CT107 node vs runtime targets, and effective adapters
|
|
2
|
-
|
|
3
|
-
Use this reference when cleaning or explaining an AgentWheel fleet-control `.agentwheel/config.json` that targets multiple runtimes/profiles.
|
|
4
|
-
|
|
5
|
-
## Durable lessons
|
|
6
|
-
|
|
7
|
-
- Do not model CT107/nestdev as `ct107-openclaw` unless there is an explicitly declared, full OpenClaw runtime home to manage. In Joseph's current CT107/CT110 layout, CT107 is a local node/workspace with Claude/Codex homes; OpenClaw gateway/profile targets live on CT110 or profile-specific users.
|
|
8
|
-
- If a target name implies a real runtime install that does not exist, remove it from `agents` and from every `profiles.*.runtimes[]` entry rather than leaving it as a misleading alias.
|
|
9
|
-
- For profile installs, AgentWheel chooses the effective adapter from each runtime target in the selected profile. The package entry's `adapter` field can be source/default metadata and is not a reliable answer to “which adapters are targeted by this pack under profile all”.
|
|
10
|
-
- When the user asks “per pack, which adapters are targeted?”, compute it as: selected profile runtimes → each runtime's adapter or adapterConfig name → package roots fanned out to that set. Then separately note artifact-type limitations, especially plugin targets.
|
|
11
|
-
|
|
12
|
-
## Safe cleanup shape
|
|
13
|
-
|
|
14
|
-
1. Read `.agentwheel/config.json` and list:
|
|
15
|
-
- `agents` entries,
|
|
16
|
-
- each profile's runtime list,
|
|
17
|
-
- any `adapterConfig` paths.
|
|
18
|
-
2. Identify misleading/nonexistent runtime targets by user/domain knowledge first. Ask or preserve if unsure; do not rename targets silently.
|
|
19
|
-
3. Remove the bad agent entry and all profile runtime references to it.
|
|
20
|
-
4. Remove only generated lock directories for the removed target, e.g. `.agentwheel/locks/<removed-agent>/`; do not bulk-delete unrelated locks.
|
|
21
|
-
5. Update `docs/fleet.md` with:
|
|
22
|
-
- canonical meaning of the fleet,
|
|
23
|
-
- current agents table,
|
|
24
|
-
- profile membership,
|
|
25
|
-
- effective adapter-targeting table per profile and per package.
|
|
26
|
-
6. Validate with JSON parsing and a grep that the removed target no longer appears in config/docs.
|
|
27
|
-
7. Run `agentwheel install --profile <profile> --dry-run` when credentials/cache allow. If a private GitHub fetch blocks dry-run, report it as a credential/cache blocker, not as proof the config is bad.
|
|
28
|
-
|
|
29
|
-
## Reporting style for Joseph
|
|
30
|
-
|
|
31
|
-
Keep it short and operational:
|
|
32
|
-
|
|
33
|
-
- what was removed/changed,
|
|
34
|
-
- exact files touched,
|
|
35
|
-
- current profile membership,
|
|
36
|
-
- validation result,
|
|
37
|
-
- any dry-run blocker.
|
|
38
|
-
|
|
39
|
-
Avoid over-explaining AgentWheel internals unless he asks; he wants the concrete fleet shape and whether it is clean.
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
# Fleet plugin rollouts with AgentWheel
|
|
2
|
-
|
|
3
|
-
Use this when a fleet-control repository manages plugin installation across multiple runtime harnesses.
|
|
4
|
-
|
|
5
|
-
## Pattern
|
|
6
|
-
|
|
7
|
-
1. Add the plugin package to `.agentwheel/config.json` as a normal package.
|
|
8
|
-
2. Select every runtime-specific artifact exposed by the OpenPack package, for example:
|
|
9
|
-
- `plugins/extra-message-policy`
|
|
10
|
-
- `plugins/hermes-extra-message-policy`
|
|
11
|
-
- shared `rules/...`
|
|
12
|
-
- runtime settings such as `settings/hermes-extra-message-policy.json`
|
|
13
|
-
3. Add a dedicated rollout profile instead of immediately folding it into `all`, for example:
|
|
14
|
-
|
|
15
|
-
```json
|
|
16
|
-
"extra-message-policy": {
|
|
17
|
-
"runtimes": [
|
|
18
|
-
{ "agent": "ct110-openclaw" },
|
|
19
|
-
{
|
|
20
|
-
"agent": "ct110-hermes",
|
|
21
|
-
"adapterConfig": "/absolute/path/to/fleet-control/adapters/hermes-with-plugins.jsonc"
|
|
22
|
-
},
|
|
23
|
-
{ "agent": "ct110-tirrenia" }
|
|
24
|
-
]
|
|
25
|
-
}
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
4. Run a dry-run first:
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
npx --yes agentwheel@latest install --profile extra-message-policy --dry-run
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
5. Apply only after reviewing drift/conflict/plugin operations. For OpenClaw semantic plugin installs, include:
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
npx --yes agentwheel@latest install --profile extra-message-policy --execute-plugins
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
6. Verify the dry-run uses copy/materialized OpenClaw plugin commands, not symlinks:
|
|
41
|
-
|
|
42
|
-
```bash
|
|
43
|
-
agentwheel install --profile extra-message-policy --dry-run | tee /tmp/plugin-dry-run.txt
|
|
44
|
-
! grep -q -- '--link' /tmp/plugin-dry-run.txt
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
Fleet-managed OpenClaw plugins should plan `openclaw plugins install <staged-plugin-path>`. If the plan contains `openclaw plugins install --link ...`, stop and update AgentWheel/OpenClaw plugin command generation before applying.
|
|
48
|
-
|
|
49
|
-
## Profile scoping pitfall
|
|
50
|
-
|
|
51
|
-
AgentWheel profiles select runtimes, not packages. If a fleet-control repo's root `.agentwheel/config.json` contains many packages and you need a narrow plugin-only rollout, create a separate workspace/profile directory with its own `.agentwheel/config.json` containing only those plugin packages. Then run the dry-run from that profile workspace.
|
|
52
|
-
|
|
53
|
-
## Important pitfall: custom adapter config placement
|
|
54
|
-
|
|
55
|
-
For profile installs, `adapterConfig` must be on the profile runtime entry, not only on the named agent. The current workspace agent schema may not preserve `adapterConfig` under `agents.*`, while profile runtimes do support it.
|
|
56
|
-
|
|
57
|
-
Use an absolute adapter config path when the runtime is remote/SSH or when relative resolution might happen from the target root rather than the fleet repository.
|
|
58
|
-
|
|
59
|
-
## Hermes plugin artifacts
|
|
60
|
-
|
|
61
|
-
If the built-in Hermes adapter does not install plugin artifacts, keep a declarative adapter config in the fleet repo, e.g. `adapters/hermes-with-plugins.jsonc`, with a `plugins` target pointing at `.hermes/plugins`.
|
|
62
|
-
|
|
63
|
-
## Verification checklist
|
|
64
|
-
|
|
65
|
-
- `agentwheel list <source>` shows all expected runtime-specific artifacts.
|
|
66
|
-
- Direct Hermes dry-run with the custom adapter creates `.hermes/plugins/<plugin>`.
|
|
67
|
-
- Fleet profile dry-run creates the Hermes plugin, rule, and settings.
|
|
68
|
-
- OpenClaw profile dry-run shows `PLUGIN ... semantic plugin install planned`.
|
|
69
|
-
- Do not restart runtimes as part of the AgentWheel install unless the user explicitly asks.
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
# Harness path-map rules pattern — 2026-06-13
|
|
2
|
-
|
|
3
|
-
Use this when Joseph asks to make CT107/CT110 workspace/harness topology visible to all agents through AgentWheel.
|
|
4
|
-
|
|
5
|
-
## Durable pattern
|
|
6
|
-
|
|
7
|
-
- Put detailed machine-readable topology in the shared docs root:
|
|
8
|
-
- `/home/administrator/env/workspace/itermodus/brain-shared/mappings/harnesses.yaml`
|
|
9
|
-
- Put the short, always-installed instruction in the private core toolkit:
|
|
10
|
-
- `/home/administrator/env/workspace/itermodus/nestdevlab/agent-core-toolkit-private/rules/harness-path-map.md`
|
|
11
|
-
- The `agent-core-toolkit-private` package exposes `rules/` via `openpack.json`, so any new file under `rules/` is discoverable by `agentwheel list .` and installable by configured runtimes.
|
|
12
|
-
|
|
13
|
-
## Content split
|
|
14
|
-
|
|
15
|
-
- Rule file: concise operational policy and pointers. Avoid a huge topology dump.
|
|
16
|
-
- YAML file: detailed host/path/mount map, legacy path status, canonical runtime homes.
|
|
17
|
-
|
|
18
|
-
## Current canonical layout
|
|
19
|
-
|
|
20
|
-
```text
|
|
21
|
-
/home/administrator/env/workspace/itermodus/brain-shared # shared docs/memory/maps/runbooks
|
|
22
|
-
/home/administrator/env/workspace/itermodus/nestdevlab # AgentWheel/OpenPack/plugin/source repos
|
|
23
|
-
/home/administrator/.hermes # Hermes harness home
|
|
24
|
-
/home/administrator/.openclaw # OpenClaw harness home
|
|
25
|
-
/home/administrator/.codex # Codex harness home
|
|
26
|
-
/home/administrator/.claude # Claude harness home
|
|
27
|
-
/home/administrator/.agentwheel # AgentWheel home
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
CT107 `/home/administrator/env/ai-agents` is a technical SSHFS view of `CT110:/home`, not the canonical docs root. Do not propose active CT110 harness state under `/root`; treat `/root` paths as legacy/backup/compatibility until audited.
|
|
31
|
-
|
|
32
|
-
## Verification
|
|
33
|
-
|
|
34
|
-
From the package root:
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
agentwheel list .
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
Expected: it lists both existing and newly added `rules/*.md` artifacts.
|
|
41
|
-
|
|
42
|
-
Before applying to runtimes, prefer:
|
|
43
|
-
|
|
44
|
-
```bash
|
|
45
|
-
agentwheel install --dry-run
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
Apply only after Joseph approves runtime/generated-file changes.
|
|
49
|
-
|
|
50
|
-
## Completion pattern for fleet propagation
|
|
51
|
-
|
|
52
|
-
When Joseph approves completing propagation of this rule, do not only run a source-scoped install. Make the package part of durable AgentWheel desired state, then apply both configured remote agents and locally detected runtimes.
|
|
53
|
-
|
|
54
|
-
1. Add the private core toolkit rule to AgentWheel global config once:
|
|
55
|
-
|
|
56
|
-
```bash
|
|
57
|
-
sudo -u administrator -H bash -lc 'agentwheel add /home/administrator/env/workspace/itermodus/nestdevlab/agent-core-toolkit-private \
|
|
58
|
-
--name NestDevLab/agent-core-toolkit-private \
|
|
59
|
-
--driver local \
|
|
60
|
-
--adapter openclaw \
|
|
61
|
-
--mode tracking \
|
|
62
|
-
--select rules/harness-path-map.md'
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
2. Preview/apply configured named agents, including SSH targets such as CT110 OpenClaw/Hermes/Tirrenia:
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
sudo -u administrator -H bash -lc 'agentwheel install --all --dry-run'
|
|
69
|
-
sudo -u administrator -H bash -lc 'agentwheel install --all'
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
3. Separately preview/apply runtimes auto-detected on the current host. `--all` only covers configured agents; it does not cover local auto-detected `.openclaw`, `.claude`, or `.codex` directories unless those are named agents.
|
|
73
|
-
|
|
74
|
-
```bash
|
|
75
|
-
sudo -u administrator -H bash -lc 'agentwheel install --all-detected --dry-run'
|
|
76
|
-
sudo -u administrator -H bash -lc 'agentwheel install --all-detected'
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
4. Verify with checksums against the package source and final dry-runs. A clean completion has identical hashes for source/generated rule files and summaries with `drift 0, conflict 0`.
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
sha256sum /home/administrator/env/workspace/itermodus/nestdevlab/agent-core-toolkit-private/rules/harness-path-map.md \
|
|
83
|
-
/home/administrator/.openclaw/rules/harness-path-map.md \
|
|
84
|
-
/home/administrator/.claude/rules/harness-path-map.md \
|
|
85
|
-
/home/administrator/.codex/rules/harness-path-map.md
|
|
86
|
-
|
|
87
|
-
ssh root@192.168.1.110 'sha256sum \
|
|
88
|
-
/home/administrator/env/workspace/itermodus/nestdevlab/agent-core-toolkit-private/rules/harness-path-map.md \
|
|
89
|
-
/home/administrator/.openclaw/rules/harness-path-map.md \
|
|
90
|
-
/home/administrator/.hermes/rules/harness-path-map.md \
|
|
91
|
-
/home/openclaw-tirrenia/.openclaw/rules/harness-path-map.md'
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
## Pitfalls
|
|
95
|
-
|
|
96
|
-
- Use `--only-source` when doing an ad-hoc source-scoped dry-run; otherwise AgentWheel may try to apply the current workspace's configured packages and report irrelevant selected-artifact errors.
|
|
97
|
-
- A failed apply may leave a pending journal that AgentWheel can recover on the next run. Fix the underlying issue and rerun `agentwheel install`; do not hand-edit generated files unless ownership/permissions block AgentWheel itself.
|
|
98
|
-
- If remote Hermes rule directories are owned by `root`, fix ownership of the directory and rerun AgentWheel instead of copying the file manually, e.g. `chown administrator:administrator /home/administrator/.hermes/rules` on CT110.
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
# Hermes profile-scoped skill rollout
|
|
2
|
-
|
|
3
|
-
Use when adding one new shared toolkit skill to Hermes default/Karan plus a Hermes profile such as `odino` without reconciling the whole generated skill tree.
|
|
4
|
-
|
|
5
|
-
## Pattern
|
|
6
|
-
|
|
7
|
-
1. Put the skill in the class-level toolkit source, e.g. `agent-core-toolkit-private/skills/<skill>/SKILL.md`.
|
|
8
|
-
2. In that toolkit `openpack.json`, restrict the skill item to Hermes if it must not install to OpenClaw/Codex/Claude:
|
|
9
|
-
```json
|
|
10
|
-
{
|
|
11
|
-
"type": "skills",
|
|
12
|
-
"path": "skills",
|
|
13
|
-
"items": {
|
|
14
|
-
"<skill>": { "runtimes": ["hermes"] }
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
```
|
|
18
|
-
3. Add `skills/<skill>` to the relevant fleet selector.
|
|
19
|
-
4. Dry-run with a scoped source install so AgentWheel does not try to adopt/reconcile every existing runtime skill:
|
|
20
|
-
```bash
|
|
21
|
-
AGENTWHEEL_NO_UPDATE_CHECK=1 npx --yes agentwheel install \
|
|
22
|
-
/path/to/toolkit --driver local \
|
|
23
|
-
--agent ct110-hermes \
|
|
24
|
-
--select skills/<skill> \
|
|
25
|
-
--only-source --dry-run
|
|
26
|
-
```
|
|
27
|
-
5. For a Hermes profile target such as Odino, pass the custom profile adapter config explicitly; otherwise the built-in Hermes adapter may reject `profile-odino` for skills as unsupported:
|
|
28
|
-
```bash
|
|
29
|
-
AGENTWHEEL_NO_UPDATE_CHECK=1 npx --yes agentwheel install \
|
|
30
|
-
/path/to/toolkit --driver local \
|
|
31
|
-
--agent ct110-hermes-odino \
|
|
32
|
-
--adapter-config adapters/hermes-odino.jsonc \
|
|
33
|
-
--select skills/<skill> \
|
|
34
|
-
--only-source --dry-run
|
|
35
|
-
```
|
|
36
|
-
6. Apply the same commands without `--dry-run` after the plan shows only the intended `CREATE`/`UPDATE` and `conflict 0`.
|
|
37
|
-
7. Verify on the remote host by checking both paths and hashes, then optionally `hermes skills list` and `hermes --profile odino skills list`.
|
|
38
|
-
|
|
39
|
-
## Pitfalls
|
|
40
|
-
|
|
41
|
-
- A broad `agentwheel install --agent ct110-hermes` can surface many unrelated conflicts for existing unmanaged skills. Use scoped source install for one-skill rollouts.
|
|
42
|
-
- `--agent ct110-hermes-odino` may not automatically apply the profile adapter config in all CLI shapes; pass `--adapter-config adapters/hermes-odino.jsonc` explicitly for profile skill installs.
|
|
43
|
-
- Keep source ownership and deploy ownership separate: toolkit repo owns the skill; fleet-control owns selectors/locks/deploy docs.
|