@awebai/oats 0.25.9 → 0.27.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 +8 -6
- package/bin/oats.mjs +648 -1755
- package/capabilities/oats-authoring/oats-package.json +2 -2
- package/capabilities/oats-authoring/oats.json +2 -2
- package/capabilities/oats-authoring/skills/integration-authoring/SKILL.md +46 -25
- package/capabilities/oats-authoring/skills/soul-craft/SKILL.md +13 -6
- package/capabilities/oats-aweb/bin/oats-aweb.mjs +279 -93
- package/capabilities/oats-aweb/injects/aweb.md +7 -2
- package/capabilities/oats-aweb/lib/binding-wire.mjs +89 -13
- package/capabilities/oats-aweb/lib/captured-native.mjs +1 -1
- package/capabilities/oats-aweb/lib/grant-custody.mjs +38 -0
- package/capabilities/oats-aweb/oats.json +8 -4
- package/capabilities/oats-jira/bin/oats-jira.mjs +4 -4
- package/capabilities/oats-jira/oats.json +2 -2
- package/capabilities/oats-jira/skills/jira-tasks/SKILL.md +6 -3
- package/capabilities/oats-linear/bin/oats-linear-hook.mjs +6 -4
- package/capabilities/oats-linear/oats.json +2 -2
- package/capabilities/oats-linear/skills/linear-tasks/SKILL.md +6 -0
- package/capabilities/oats-review/oats.json +3 -2
- package/docs/capabilities.md +229 -58
- package/docs/capability-manifest.schema.json +29 -9
- package/docs/configuration.md +17 -5
- package/docs/conventions.md +18 -28
- package/docs/design/2026-09-08-expert-assisted-deployment-proposal.md +1 -1
- package/docs/design/2026-09-13-knowledge-and-memory-direction.md +3 -3
- package/docs/design/2026-09-14-portable-souls-and-git-workspaces.md +2 -2
- package/docs/design/2026-09-15-portable-souls-handoff.md +2 -2
- package/docs/design/2026-09-15-portable-souls-implementation.md +1 -1
- package/docs/design/2026-09-20-redesign-program-board.md +2 -2
- package/docs/design/2026-09-23-workspace-module-contracts.md +1 -1
- package/docs/design/2026-09-23-workspace-v2-implementation-plan.md +1 -1
- package/docs/design/2026-09-24-desktop-phase-f-boundary.md +34 -1
- package/docs/design/2026-09-24-phase-d-plan.md +57 -0
- package/docs/design/2026-09-25-teams-contract.md +226 -0
- package/docs/design/README.md +3 -3
- package/docs/design/launch-configurations.md +20 -16
- package/docs/design/operations-contract.md +27 -10
- package/docs/desktop-cli-api.md +604 -271
- package/docs/desktop-instance-start.md +3 -3
- package/docs/desktop.md +7 -13
- package/docs/execution-targets.md +16 -18
- package/docs/first-team.md +15 -18
- package/docs/implementation.md +31 -62
- package/docs/integrations.md +64 -33
- package/docs/knowledge-capability-authoring.md +1 -1
- package/docs/knowledge-reference/package-craft.md +10 -8
- package/docs/knowledge-theory.md +1 -1
- package/docs/knowledge.md +10 -11
- package/docs/layers.md +16 -17
- package/docs/oats-local.schema.json +30 -1
- package/docs/oats-membership.schema.json +5 -3
- package/docs/oats-package.schema.json +2 -2
- package/docs/oats-workspace.schema.json +1 -1
- package/docs/{official-marketplace.md → official-catalog.md} +15 -16
- package/docs/packages.md +76 -53
- package/docs/release-notes/v0.22.0.md +1 -1
- package/docs/release-notes/v0.23.1.md +1 -1
- package/docs/release-notes/v0.26.0.md +670 -0
- package/docs/release-notes/v0.27.0.md +100 -0
- package/docs/schedules.md +54 -132
- package/docs/servers.md +4 -4
- package/docs/soul.schema.json +11 -4
- package/docs/souls-and-instances.md +60 -47
- package/docs/workspaces.md +80 -58
- package/injects/instance-boundary.md +2 -2
- package/injects/work-attached.md +1 -1
- package/injects/work-workspace.md +2 -2
- package/lib/{portable-files.mjs → bounded-read.mjs} +6 -6
- package/lib/{portable-values.mjs → canonical-json.mjs} +3 -12
- package/lib/capability-contract.mjs +110 -0
- package/lib/config-data.mjs +2 -2
- package/lib/core.mjs +947 -5023
- package/lib/deprecation.mjs +24 -0
- package/lib/digest.mjs +12 -0
- package/lib/instance-inspect.mjs +397 -0
- package/lib/instance-lifecycle.mjs +3 -4
- package/lib/instance-resolution.mjs +212 -26
- package/lib/instruction-composition.mjs +0 -20
- package/lib/materialize.mjs +6 -4
- package/lib/operator-dispatch.mjs +33 -13
- package/lib/packages.mjs +25 -190
- package/lib/process-group.mjs +1 -1
- package/lib/provider-binding.mjs +4 -2
- package/lib/provider-reasons.mjs +3 -68
- package/lib/remote.mjs +1 -1
- package/lib/resolve.mjs +204 -68
- package/lib/schedule.mjs +136 -292
- package/lib/servers.mjs +70 -38
- package/lib/{portable-shape.mjs → shape.mjs} +4 -3
- package/lib/tree-copy.mjs +44 -0
- package/lib/workspace.mjs +132 -20
- package/package-catalog.json +6 -6
- package/package.json +1 -1
- package/packages/record/lib/session-roots.mjs +8 -6
- package/skills/integration-authoring/SKILL.md +48 -40
- package/skills/oats-getting-started/SKILL.md +105 -110
- package/skills/oats-support/SKILL.md +2 -2
- package/skills/soul-craft/SKILL.md +13 -6
- package/bin/oats-pi-sdk-host.mjs +0 -17
- package/docs/2026-09-03-architecture-proposal.md +0 -642
- package/docs/artifact-approvals.schema.json +0 -7
- package/docs/captured-invocation-context.schema.json +0 -7
- package/docs/captured-resolution.schema.json +0 -7
- package/docs/design/package-engine-contract.md +0 -813
- package/docs/design/package-runtime-api.md +0 -588
- package/docs/desktop-succession.md +0 -57
- package/docs/execution-capsule.schema.json +0 -108
- package/docs/first-team-demo.md +0 -92
- package/docs/knowledge-migration.md +0 -147
- package/docs/migration-from-oas.md +0 -103
- package/docs/oats-config.schema.json +0 -172
- package/docs/oats-lock-v3.schema.json +0 -7
- package/docs/oats-lock.schema.json +0 -175
- package/docs/operating-team-migration.md +0 -470
- package/docs/portable.schema.json +0 -2512
- package/docs/provider-check-input.schema.json +0 -7
- package/docs/rebuild-to-v2.md +0 -511
- package/docs/workspace-adoption.md +0 -74
- package/injects/framework-workspace.md +0 -7
- package/injects/local-soul.md +0 -19
- package/injects/oats-portable.md +0 -20
- package/injects/oats.md +0 -11
- package/injects/portable-instance-boundary.md +0 -39
- package/injects/portable-work-directory.md +0 -29
- package/lib/artifact-approvals.mjs +0 -120
- package/lib/artifact-tree.mjs +0 -141
- package/lib/capability-artifacts.mjs +0 -179
- package/lib/capability-execution.mjs +0 -15
- package/lib/capability-inputs.mjs +0 -39
- package/lib/capability-provenance.mjs +0 -231
- package/lib/captured-action-shape.mjs +0 -21
- package/lib/captured-admission-shape.mjs +0 -20
- package/lib/captured-binding-file.mjs +0 -36
- package/lib/captured-dispatch.mjs +0 -66
- package/lib/captured-instance-index.mjs +0 -277
- package/lib/captured-invocation-context.mjs +0 -130
- package/lib/captured-launch-request.mjs +0 -66
- package/lib/captured-operation-process.mjs +0 -15
- package/lib/captured-pi-custody.mjs +0 -29
- package/lib/captured-pi-host.mjs +0 -167
- package/lib/captured-pi-outcome.mjs +0 -172
- package/lib/captured-resolutions.mjs +0 -275
- package/lib/captured-scaffold.mjs +0 -87
- package/lib/captured-selector.mjs +0 -28
- package/lib/captured-session-backend.mjs +0 -52
- package/lib/captured-source-receipt-file.mjs +0 -72
- package/lib/helper-injection-policy.mjs +0 -104
- package/lib/legacy-lock-codec.mjs +0 -106
- package/lib/manifest-settings.mjs +0 -84
- package/lib/package-closure.mjs +0 -48
- package/lib/package-materialization.mjs +0 -83
- package/lib/pi-sdk-host.mjs +0 -229
- package/lib/portable-artifacts.mjs +0 -115
- package/lib/portable-choices.mjs +0 -82
- package/lib/portable-composition.mjs +0 -136
- package/lib/portable-digest.mjs +0 -105
- package/lib/portable-identity.mjs +0 -40
- package/lib/portable-lock.mjs +0 -117
- package/lib/portable-onboarding-request.mjs +0 -49
- package/lib/portable-onboarding.mjs +0 -256
- package/lib/portable-package-preparation.mjs +0 -188
- package/lib/portable-policy.mjs +0 -44
- package/lib/portable-soul.mjs +0 -42
- package/lib/portable-state.mjs +0 -80
- package/lib/prepare-composition.mjs +0 -170
- package/lib/prepared-bindings.mjs +0 -92
- package/lib/prepared-resources.mjs +0 -127
- package/lib/provider-binding-broker.mjs +0 -65
- package/lib/provider-binding-wire.mjs +0 -116
- package/lib/readiness.mjs +0 -225
- package/lib/repository-observation.mjs +0 -226
- package/lib/resolution-shape.mjs +0 -393
- package/lib/schedule-capsule.mjs +0 -206
- package/lib/soul-constraints.mjs +0 -40
- package/lib/source-projection.mjs +0 -84
- package/lib/source-spec.mjs +0 -189
- package/lib/workspace-definition.mjs +0 -126
- package/lib/workspace-discovery.mjs +0 -146
- package/skills/oats/SKILL.md +0 -162
- package/skills/oats-config/SKILL.md +0 -164
- package/skills/oats-packages/SKILL.md +0 -184
- package/skills/oats-portable/SKILL.md +0 -115
- package/skills/oats-portable-artifacts/SKILL.md +0 -63
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
# Launch configurations and launch recipes
|
|
2
2
|
|
|
3
|
-
A **launch configuration** is a named way to start a harness, declared
|
|
4
|
-
|
|
5
|
-
docs/configuration.md
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
A **launch configuration** is a named way to start a harness, declared by
|
|
4
|
+
the host under `launch-configs:` in the deployment's `oats-local.yaml` (see
|
|
5
|
+
docs/configuration.md; 0.26.0, lead decision 2 — earlier kernels read it
|
|
6
|
+
from a scope's `oats-config.yaml`): runtime, an executable, literal
|
|
7
|
+
arguments, environment (literals or `{fromEnv}` references), model, yolo.
|
|
8
|
+
It is independent of any soul, and a spawn, start or restart selects one by
|
|
9
|
+
name (`--launch-config`, or the Desktop's per-launch choice). A launch
|
|
10
|
+
configuration is a spawn-time host choice, never a soul field: `launch-config:`
|
|
11
|
+
is not a field of a workspace-model soul.yaml (docs/soul.schema.json; discovery
|
|
12
|
+
refuses it), so a v2 soul cannot name one, not even as a default. (A classic
|
|
13
|
+
0.25 soul.yaml could name a preferred entry; 0.26.0 reads no such field.)
|
|
10
14
|
|
|
11
15
|
A **launch recipe** is what a start is made of, recorded in the instance's
|
|
12
16
|
`instance.json` under `launch` beside the rendered `command`:
|
|
@@ -15,9 +19,9 @@ A **launch recipe** is what a start is made of, recorded in the instance's
|
|
|
15
19
|
{
|
|
16
20
|
"version": 1,
|
|
17
21
|
"runtime": "claude",
|
|
18
|
-
"launchConfig": "personal", "launchConfigSource": "/
|
|
19
|
-
"executable": "/
|
|
20
|
-
"executableDeclared": "./tools/claude-wrapper.sh", "executableResolvedFrom": "relative to /
|
|
22
|
+
"launchConfig": "personal", "launchConfigSource": "/deployment",
|
|
23
|
+
"executable": "/deployment/tools/claude-wrapper.sh",
|
|
24
|
+
"executableDeclared": "./tools/claude-wrapper.sh", "executableResolvedFrom": "relative to /deployment",
|
|
21
25
|
"args": ["--settings", "/abs/settings.json"],
|
|
22
26
|
"env": { "KEY": { "fromEnv": "SRC" }, "LIT": "plain" },
|
|
23
27
|
"model": "claude-opus-5", "yolo": true,
|
|
@@ -55,16 +59,16 @@ shows them: `list` and `preview` redact every environment value.
|
|
|
55
59
|
that disagrees with the configuration's runtime is refused
|
|
56
60
|
(`E_LAUNCH_CONFIG_MISMATCH`) before anything happens; the same runtime may
|
|
57
61
|
be repeated; `--model` and `--yolo` override the configuration's fields.
|
|
58
|
-
- Without `--launch-config`: a spawn
|
|
59
|
-
|
|
62
|
+
- Without `--launch-config`: a spawn uses no configuration (the runtime's
|
|
63
|
+
defaults; a soul names none); an existing home keeps its recorded configuration, except that
|
|
60
64
|
`--runtime` alone deliberately leaves it behind and renders the new
|
|
61
65
|
runtime's defaults (no old executable or args are carried).
|
|
62
66
|
- Model: explicit, else the configuration's, else on an existing home the
|
|
63
67
|
recorded model when the runtime is unchanged, else the runtime's native
|
|
64
|
-
default; a spawn without either
|
|
65
|
-
|
|
68
|
+
default; a spawn without either uses the runtime's native default (a
|
|
69
|
+
workspace-model soul declares no model). A model never crosses runtimes.
|
|
66
70
|
- Executable: the configuration's (bare name on PATH; a path resolved against
|
|
67
|
-
the
|
|
71
|
+
the deployment directory when relative) or the runtime's default (claude through
|
|
68
72
|
`oats-claude-config`). It must be a regular executable file; it is never
|
|
69
73
|
run to probe it. Capability runtime-package requirements are checked with
|
|
70
74
|
the runtime's default binary, as at spawn.
|
|
@@ -87,7 +91,7 @@ re-run by a start or restart.
|
|
|
87
91
|
Read-only; nothing is locked or started. `--home ABS` describes an existing
|
|
88
92
|
home under a selection (`selection.source`: `frozen` when nothing was
|
|
89
93
|
selected, `config` when re-resolved, `frozen-command` for a home that
|
|
90
|
-
predates recipes,
|
|
94
|
+
predates recipes, where a selection answers `E_LAUNCH_LEGACY`: re-spawn it);
|
|
91
95
|
`--soul NAME [--dir SCOPE] [--agents-root ABS]` describes a new instance.
|
|
92
96
|
Answer: `{context, selected, selection:{source, launchConfig, runtime,
|
|
93
97
|
model, yolo}, runtime, model, modelSource, yolo, launchConfig,
|
|
@@ -97,15 +97,16 @@ are listed. `use none --layer l` is a level statement and takes no soul or
|
|
|
97
97
|
type. A layer bound to another capability at a level is never overwritten
|
|
98
98
|
(`E_LAYER_BOUND` with the exact remedy).
|
|
99
99
|
|
|
100
|
+
*(0.24/0.25 only — `oats soul set` was removed in 0.26.0: a soul is edited in its member repository, then `oats sync`. Kept for history.)*
|
|
100
101
|
`oats soul set <name> [--dir] [--agents-root] [--runtime] [--model |
|
|
101
102
|
--no-model] [--yolo | --no-yolo] [--backend] [--description |
|
|
102
|
-
--no-description] [--instructions-file <path>] --json`
|
|
103
|
-
`soul.yaml` lines and
|
|
104
|
-
(`E_SOUL_READONLY`). The receipt
|
|
103
|
+
--no-description] [--instructions-file <path>] --json` edited only the given
|
|
104
|
+
`soul.yaml` lines and replaced `AGENTS.md`; packaged souls were refused
|
|
105
|
+
(`E_SOUL_READONLY`). The receipt carried before/after and sha256s.
|
|
105
106
|
|
|
106
107
|
## Remote
|
|
107
108
|
|
|
108
|
-
`inspect
|
|
109
|
+
`inspect` and `operation` route with `--server <id>` through
|
|
109
110
|
the saved route. The gate is the destination's `features` list containing
|
|
110
111
|
`operations` and its `operationsApi: 1` (`E_REMOTE_INCOMPATIBLE` before
|
|
111
112
|
anything is sent): `features` describes what a kernel can do locally, which
|
|
@@ -113,12 +114,28 @@ is what runs on the host. The probe's `remote` list describes what a CLI
|
|
|
113
114
|
can ROUTE to a server and is what a GUI checks on the local CLI before
|
|
114
115
|
offering remote actions; it is not a gate on the destination. An explicit `--dir` is the exact member context and
|
|
115
116
|
travels as is; `--home` is its own context; otherwise the registered
|
|
116
|
-
workspace is the scope.
|
|
117
|
-
(`--instructions-stdin` on the host), never as a local path.
|
|
117
|
+
workspace is the scope.
|
|
118
118
|
|
|
119
119
|
## Replaceability
|
|
120
120
|
|
|
121
|
-
`test/
|
|
122
|
-
|
|
123
|
-
provider
|
|
124
|
-
|
|
121
|
+
`test/operation.test.mjs` runs the real CLI on the Northwind fixture and
|
|
122
|
+
replaces the provider in a spawned home's module copy (what `operation run
|
|
123
|
+
--home` executes) with a recording provider of its own: the runner is generic
|
|
124
|
+
and assumes nothing about the official provider's operations.
|
|
125
|
+
|
|
126
|
+
## Workspace model (0.26.0)
|
|
127
|
+
|
|
128
|
+
On a workspace deployment, and for a home whose `instance.json` records
|
|
129
|
+
`modules`, `oats inspect`, `oats readiness` and `oats operation run` read the
|
|
130
|
+
workspace model's own records instead of the config chain:
|
|
131
|
+
- the subject is `--home` (instance.json plus its module copies) or `--soul`
|
|
132
|
+
(the soul resolved as its spawn would be), never a scope;
|
|
133
|
+
- `operationsApi` is 2 (also on the run result), and each soul row carries
|
|
134
|
+
`soulsApi: 2`;
|
|
135
|
+
- there is no trust gate (`E_CAPABILITY_BLOCKED` is gone);
|
|
136
|
+
- no `scope`, `chain`, `activation`, `snapshot` or `currentConfig` block.
|
|
137
|
+
|
|
138
|
+
The payloads are specified in
|
|
139
|
+
[desktop-cli-api.md](../desktop-cli-api.md#inspect-readiness-and-operation-run-on-the-workspace-model-operationsapi-2-soulsapi-2-readinessapi-2-oats-0260).
|
|
140
|
+
The sections above describe the classic path, which is removed with the classic
|
|
141
|
+
config chain.
|