@awebai/oats 0.26.0 → 0.27.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/bin/oats.mjs +82 -51
- package/capabilities/oats-aweb/bin/oats-aweb.mjs +272 -72
- package/capabilities/oats-aweb/injects/aweb.md +9 -1
- package/capabilities/oats-aweb/lib/binding-wire.mjs +42 -11
- package/capabilities/oats-aweb/oats.json +47 -5
- package/capabilities/oats-aweb/skills/aweb-team-membership/SKILL.md +79 -301
- package/docs/capabilities.md +11 -11
- package/docs/capability-manifest.schema.json +16 -5
- package/docs/configuration.md +2 -2
- package/docs/conventions.md +2 -2
- package/docs/desktop-cli-api.md +70 -13
- package/docs/desktop-instance-start.md +2 -2
- package/docs/first-team.md +1 -1
- package/docs/implementation.md +3 -3
- package/docs/oats-local.schema.json +5 -4
- package/docs/packages.md +2 -2
- package/docs/release-notes/v0.27.0.md +100 -0
- package/docs/release-notes/v0.27.1.md +29 -0
- package/docs/schedules.md +6 -6
- package/docs/servers.md +4 -4
- package/docs/souls-and-instances.md +6 -6
- package/injects/instance-boundary.md +1 -1
- package/lib/core.mjs +255 -207
- package/lib/deprecation.mjs +24 -0
- package/lib/instance-inspect.mjs +4 -3
- package/lib/process-group.mjs +1 -1
- package/lib/remote.mjs +1 -1
- package/lib/schedule.mjs +39 -20
- package/lib/servers.mjs +57 -25
- package/lib/workspace.mjs +7 -0
- package/package-catalog.json +1 -1
- package/package.json +1 -1
- package/packages/record/lib/session-roots.mjs +8 -6
- package/skills/soul-craft/SKILL.md +1 -1
package/docs/servers.md
CHANGED
|
@@ -25,8 +25,8 @@ oats server list
|
|
|
25
25
|
- `--path` names directories to prepend to the remote PATH for every routed
|
|
26
26
|
command (`~/.local/bin:/opt/pi/bin`). A non-interactive ssh command runs in
|
|
27
27
|
the login shell's minimal PATH, and the remote kernel's spawn preflight looks
|
|
28
|
-
for the
|
|
29
|
-
|
|
28
|
+
for the harness binary (`claude`, `pi`, `codex`) there; without this, a
|
|
29
|
+
harness installed under the user's home is "not found" even though it runs
|
|
30
30
|
fine in an interactive shell on that host.
|
|
31
31
|
- Registrations live in `~/.oats/servers.json` on this machine, never in a
|
|
32
32
|
repository scope.
|
|
@@ -44,13 +44,13 @@ worktree, identity, launch, retirement. The local side only routes: a local
|
|
|
44
44
|
`--task-file` travels as text, every argument is quoted for the remote login
|
|
45
45
|
shell, and the remote's version and envelope are checked before either
|
|
46
46
|
mutation (spawn and retire). A spawn is also held to what the remote
|
|
47
|
-
advertises: a
|
|
47
|
+
advertises: a harness it does not list (including the soul's own default as
|
|
48
48
|
the remote roster reports it), a session backend it lacks, or a launch option
|
|
49
49
|
such as `--yolo` it does not know is refused with `E_REMOTE_INCOMPATIBLE`
|
|
50
50
|
saying what was established. A remote that advertises nothing (any kernel
|
|
51
51
|
before 0.22.2) is assumed to run pi and claude on tmux with no options, and
|
|
52
52
|
the refusal says so rather than claiming the remote lacks the feature; a soul
|
|
53
|
-
the remote roster does not list with a
|
|
53
|
+
the remote roster does not list with a harness is validated by the remote
|
|
54
54
|
kernel itself at spawn. `--dir` and `--server` do not combine; the remote
|
|
55
55
|
workspace comes from the registration.
|
|
56
56
|
|
|
@@ -68,9 +68,9 @@ compatibility: # optional floors on PACKAGE versions
|
|
|
68
68
|
| `compatibility` | `<cap>: <semver range>` checked against the locked package version (`E_COMPATIBILITY`). |
|
|
69
69
|
|
|
70
70
|
Schema: [`soul.schema.json`](soul.schema.json). Not in v2: `kind`, `type`,
|
|
71
|
-
`repo`, `
|
|
71
|
+
`repo`, `harness`, `model`, `backend`, `yolo`, `launch-config`, `children`,
|
|
72
72
|
`requires`, `source:`, `stores.inherit`. Runtime, model, backend, yolo and the
|
|
73
|
-
launch configuration are spawn-time host choices (`--
|
|
73
|
+
launch configuration are spawn-time host choices (`--harness`, `--model`,
|
|
74
74
|
`--backend`, `--yolo`, `--launch-config`, or a launch configuration in
|
|
75
75
|
`oats-local.yaml`), not soul identity: a soul is model-agnostic as an artifact.
|
|
76
76
|
A child-spawn policy is a spawn flag too (`--no-child-spawns`).
|
|
@@ -303,13 +303,13 @@ evidence but never waits for a model or GitHub: independent processing and
|
|
|
303
303
|
source-targeted inspection continue after the home disappears.
|
|
304
304
|
|
|
305
305
|
`oats retire <instance> --self` lets an instance retire itself when the human
|
|
306
|
-
or briefing says it is done. A live
|
|
306
|
+
or briefing says it is done. A live harness cannot give a stable final
|
|
307
307
|
inspection of its own work, so the calling process inspects, runs, and removes
|
|
308
308
|
nothing: it records the intent beside its home as
|
|
309
309
|
`.oats-retire-pending-<instance>.json` and starts a detached completion, then returns so the instance can report final
|
|
310
310
|
status before its tmux window dies a few seconds later. The completion then
|
|
311
311
|
retires the instance exactly as an external `oats retire` would: quiesce the
|
|
312
|
-
|
|
312
|
+
harness, preserve uncommitted work, run retire hooks, repair lineage, remove
|
|
313
313
|
the worktree and the home. Success leaves nothing behind: the home and the
|
|
314
314
|
marker are gone. A failure writes `.oats-retired-<instance>.json` beside the
|
|
315
315
|
retained home (plus the usual quarantine marker when hooks reported incomplete
|
|
@@ -399,7 +399,7 @@ directory; without it, the deployment directory (where `oats-local.yaml` is) is
|
|
|
399
399
|
used. No implicit fallback changes the other modes.
|
|
400
400
|
|
|
401
401
|
`--work-dir` and `--branch` are rejected. Canonical instructions, skill
|
|
402
|
-
composition, provider trust and
|
|
402
|
+
composition, provider trust and harness preflight still apply. No worktree setup
|
|
403
403
|
runs. Retirement preserves nonempty work in verified recovery storage beside the
|
|
404
404
|
home (`workRecovery.path/work`) before deleting it, including files created by
|
|
405
405
|
hooks; directory work has no disposable-root exemptions. The work-root cannot be
|
|
@@ -469,7 +469,7 @@ they are stated separately:
|
|
|
469
469
|
compatibility aliases for the separately published pi extension.
|
|
470
470
|
- **Lifecycle hooks**: `OATS_INSTANCE_HOME` and `OATS_HOME`, alongside the rest of
|
|
471
471
|
the hook contract. `OATS_HOME` predates `OATS_INSTANCE_HOME` and is kept because
|
|
472
|
-
shipped capability hooks read it; it is **not** exported to
|
|
472
|
+
shipped capability hooks read it; it is **not** exported to harness sessions.
|
|
473
473
|
|
|
474
474
|
Neither is `OATS_HOME_DIR`, which is the package store root — do not conflate
|
|
475
475
|
them.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
## Your two directories
|
|
2
2
|
|
|
3
3
|
**`<instance-home>` is where this session starts** — the specific gitignored OATS
|
|
4
|
-
instance directory you woke up in, given to your
|
|
4
|
+
instance directory you woke up in, given to your harness and to every lifecycle
|
|
5
5
|
hook as `$OATS_INSTANCE_HOME`. It is not your user home (`~`), not the repository
|
|
6
6
|
root, and not the work tree. Anything that says "your home" means this directory.
|
|
7
7
|
|