@awebai/oats 0.23.0 → 0.23.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 +48 -18
- package/capabilities/oats-okf/agents/memory-harvest/AGENTS.md +18 -24
- package/capabilities/oats-okf/agents/memory-harvest/soul.yaml +2 -2
- package/capabilities/oats-okf/bin/oats-okf.mjs +105 -517
- package/capabilities/oats-okf/injects/okf.md +32 -67
- package/capabilities/oats-okf/lib/config.mjs +112 -0
- package/capabilities/oats-okf/lib/inspection.mjs +96 -0
- package/capabilities/oats-okf/lib/io.mjs +103 -0
- package/capabilities/oats-okf/lib/migration.mjs +116 -0
- package/capabilities/oats-okf/lib/sources.mjs +238 -0
- package/capabilities/oats-okf/lib/stores.mjs +331 -0
- package/capabilities/oats-okf/lib/worker.mjs +352 -0
- package/capabilities/oats-okf/oats.json +23 -7
- package/capabilities/oats-okf/schemas/okf-base.schema.json +46 -0
- package/capabilities/oats-okf/schemas/okf-bindings.schema.json +112 -0
- package/capabilities/oats-okf/schemas/okf-soul.schema.json +37 -0
- package/capabilities/oats-okf/skills/memory-harvest/SKILL.md +263 -140
- package/capabilities/oats-okf/skills/okf/SKILL.md +13 -4
- package/docs/capabilities.md +14 -3
- package/docs/configuration.md +11 -1
- package/docs/design/okf-mirror-provenance.md +105 -0
- package/docs/desktop-cli-api.md +59 -10
- package/docs/first-team-demo.md +6 -1
- package/docs/first-team.md +151 -115
- package/docs/integrations.md +42 -42
- package/docs/knowledge-capability-authoring.md +10 -7
- package/docs/knowledge-migration.md +138 -0
- package/docs/knowledge.md +316 -129
- package/docs/layers.md +57 -62
- package/docs/migration-from-oas.md +7 -1
- package/docs/packages.md +26 -2
- package/docs/release-notes/v0.23.1.md +97 -0
- package/docs/schedules.md +42 -3
- package/docs/souls-and-instances.md +55 -48
- package/package-catalog.json +6 -1
- package/package.json +1 -1
- package/capabilities/oats-okf/lib/harvest-branch.mjs +0 -43
package/docs/integrations.md
CHANGED
|
@@ -43,6 +43,8 @@ capabilities:
|
|
|
43
43
|
knowledge:
|
|
44
44
|
capability: oats.okf
|
|
45
45
|
from: installed
|
|
46
|
+
settings:
|
|
47
|
+
bindings-file: /absolute/config/okf-bindings.json
|
|
46
48
|
messaging:
|
|
47
49
|
capability: oats.aweb
|
|
48
50
|
from: installed
|
|
@@ -65,7 +67,7 @@ capabilities:
|
|
|
65
67
|
CLI equivalents:
|
|
66
68
|
|
|
67
69
|
```bash
|
|
68
|
-
oats use oats.okf --global
|
|
70
|
+
oats use oats.okf --global --settings bindings-file=/absolute/config/okf-bindings.json
|
|
69
71
|
oats use oats.aweb --type product-agents
|
|
70
72
|
oats use oats.linear --type product-agents
|
|
71
73
|
oats use none --layer tasks # leave an inherited slot deliberately unfilled
|
|
@@ -78,11 +80,14 @@ is different from a soul whose type restricts its reach.
|
|
|
78
80
|
|
|
79
81
|
## Bundled integrations
|
|
80
82
|
|
|
81
|
-
**`oats.okf
|
|
82
|
-
`log.md
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
**`oats.okf` v2** fills `knowledge`: external owned OKF bases, immutable
|
|
84
|
+
reader views, instance `STATE.md`/`log.md`/`notes/`, durable notes-and-record
|
|
85
|
+
custody and an independent directory worker. Git delivery is PR-only; plain
|
|
86
|
+
directory delivery is recoverable and needs no Git/gh. Explicit bindings,
|
|
87
|
+
`soul/okf.json` and accepted base metadata are required before a working source
|
|
88
|
+
can spawn. `owns`/`reads` are responsibility/context, not ACLs. See
|
|
89
|
+
[knowledge](knowledge.md) for the **prepared** version scope, provisioning and
|
|
90
|
+
commands, and [migration](knowledge-migration.md) before updating v1.
|
|
86
91
|
|
|
87
92
|
**`oats.aweb`** fills `messaging`: mints an instance identity at spawn,
|
|
88
93
|
removes it at retire, contributes the aweb messaging and team skills, wires
|
|
@@ -117,13 +122,15 @@ kernel only through `OATS_CLI_BIN` and the JSON envelope, never by importing
|
|
|
117
122
|
kernel files. Never name target souls in the manifest; targeting belongs to
|
|
118
123
|
configuration.
|
|
119
124
|
|
|
120
|
-
**Knowledge.**
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
125
|
+
**Knowledge.** Each capability owns its complete runtime and format, including
|
|
126
|
+
reader/capture instructions, judgment and provider-native delivery. Do not
|
|
127
|
+
assume a soul bundle, attached worker, Git store or mandatory shared harvester.
|
|
128
|
+
The optional [authoring guide](knowledge-capability-authoring.md) describes the
|
|
129
|
+
reference model and how to adapt or replace it. OKF v2 is one implementation:
|
|
130
|
+
explicit external ownership, instructional read-only sources, evidence custody
|
|
131
|
+
outside disposable homes, independent workers, PR-only Git and recoverable
|
|
132
|
+
non-Git publication. Existing lifecycle hooks and supported CLI/scheduler
|
|
133
|
+
commands implement it; no proposed universal `harvest` event is required.
|
|
127
134
|
|
|
128
135
|
**Communication.** Mint an address on `spawn` with a `required` hook and
|
|
129
136
|
remove it on `retire`; supply the roster; teach send, reply, chat, and "read
|
|
@@ -140,40 +147,33 @@ Test an integration as a capability package: acquire, lock, trust, activate,
|
|
|
140
147
|
spawn, retire, with the golden fixtures as the behavior oracle for the kernel
|
|
141
148
|
side.
|
|
142
149
|
|
|
143
|
-
## oats.okf
|
|
150
|
+
## oats.okf v2 settings and recovery
|
|
144
151
|
|
|
145
|
-
|
|
146
|
-
|
|
152
|
+
V2 requires `bindings-file`, an absolute path to capability-owned JSON. Paths
|
|
153
|
+
inside it resolve from that file's directory. The source soul needs stable
|
|
154
|
+
`owner`, `owns` and `reads` declarations; every referenced accepted node must
|
|
155
|
+
exist and match its owner. Acquisition/activation never bootstraps a knowledge
|
|
156
|
+
base. If activating globally, provision each working soul first or target only
|
|
157
|
+
ready sources.
|
|
147
158
|
|
|
148
159
|
```bash
|
|
149
|
-
oats use oats.okf --settings harvest-runtime=claude
|
|
160
|
+
oats use oats.okf --soul domain-expert --settings bindings-file=/absolute/config/okf-bindings.json harvest-runtime=claude
|
|
150
161
|
```
|
|
151
162
|
|
|
152
|
-
- `harvest-runtime: pi | claude | codex` defaults to `pi
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
start a second harvester while the first one's home exists. The check uses the
|
|
167
|
-
existing prepared watermark file and does not treat a successful spawn as
|
|
168
|
-
completed learning.
|
|
169
|
-
|
|
170
|
-
## oats.okf 1.5.2
|
|
171
|
-
|
|
172
|
-
`okf harvest` exits non-zero when it reports a failure (the plain and the
|
|
173
|
-
`--json` forms alike). A leftover `memory-harvest/<slug>` branch from a merged
|
|
174
|
-
promotion is deleted before the next workspace-mode harvest; an unmerged one
|
|
175
|
-
refuses the harvest and names the remedy. `oats okf harvest --help` prints
|
|
176
|
-
usage and never spawns.
|
|
163
|
+
- `harvest-runtime: pi | claude | codex` defaults to `pi`, independently of the
|
|
164
|
+
source. Select an installed/authenticated runtime on the execution host.
|
|
165
|
+
- `harvest-model` optionally pins its model. Omitted models use the harness
|
|
166
|
+
default; native Claude/Codex names are not Pi provider-prefixed patterns.
|
|
167
|
+
- Old record-window settings and `--from-record --force` recovery are not v2
|
|
168
|
+
interfaces. Every capture takes notes **and** record; use durable run receipts
|
|
169
|
+
and explicit `retry`/`complete` reconciliation, never old watermark moves.
|
|
170
|
+
|
|
171
|
+
For remote sources, configure custody and credentials on their execution host,
|
|
172
|
+
not the viewer. One source job continues from stable deployment context after
|
|
173
|
+
retirement, subject to current activation/trust. Timer installation requires
|
|
174
|
+
explicit consent. `inspect` is read-only and combines identity-guarded live
|
|
175
|
+
memory with durable receipts; `--source` remains usable after home deletion.
|
|
176
|
+
[Command and recovery details](knowledge.md#inspection-and-operator-commands).
|
|
177
177
|
|
|
178
178
|
## oats.aweb late joins (1.10.3)
|
|
179
179
|
|
|
@@ -31,14 +31,14 @@ their compatibility. Installing the theory package activates nothing.
|
|
|
31
31
|
## Install the optional authoring package
|
|
32
32
|
|
|
33
33
|
The kernel's npm package ships this public guide and the CLI, **not** the
|
|
34
|
-
optional expert payload. `oats.knowledge-theory` 1.0.0
|
|
35
|
-
|
|
34
|
+
optional expert payload. The catalog selects `oats.knowledge-theory` 1.0.0
|
|
35
|
+
from the already-published framework v0.23.0 Git `oats-package/` subtree. Git preserves the canonical
|
|
36
36
|
source `CLAUDE.md -> AGENTS.md` symlink; npm omits symlinks, so a partial npm
|
|
37
37
|
copy is not a supported distribution. Acquisition does not repair source
|
|
38
38
|
aliases or relax installed-artifact integrity checks.
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
Select a deployment scope explicitly and acquire the published source, then
|
|
41
|
+
opt in for an author soul:
|
|
42
42
|
|
|
43
43
|
```bash
|
|
44
44
|
oats install git:github.com/awebai/oats@v0.23.0 --dir /path/to/scope
|
|
@@ -46,9 +46,12 @@ oats use oats.knowledge-theory --soul <author-soul> --dir /path/to/scope
|
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
Git sources select `oats-package/` by default and lock the resolved commit.
|
|
49
|
-
The
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
The `oats.knowledge-theory` catalog shortcut uses that same published v0.23.0
|
|
50
|
+
source. The current authoring-reference patch is package 1.0.1: once framework
|
|
51
|
+
v0.23.1 is published, an explicit initial Git acquisition at that tag selects
|
|
52
|
+
the patch instead. It does not silently change the catalog's 1.0.0 selection
|
|
53
|
+
or an existing lock. For local development, use an explicit complete source
|
|
54
|
+
package path instead. Activation exposes the expert and targets
|
|
52
55
|
the authoring skill, without selecting or replacing a knowledge integration.
|
|
53
56
|
There are no executable surfaces to trust in this package. Installed experts
|
|
54
57
|
use their materialized local curriculum, not this repository at runtime.
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# Migrating OKF v1 knowledge to v2
|
|
2
|
+
|
|
3
|
+
> **Prepared, not a live migration.** These instructions target oats.okf 2.0.0
|
|
4
|
+
> with OATS >=0.23.0 and the prepared framework v0.23.1 integration. Confirm the
|
|
5
|
+
> final standalone source tag and dependencies are published before following
|
|
6
|
+
> the acquisition path. See [release gates](release-notes/v0.23.1.md).
|
|
7
|
+
|
|
8
|
+
This is **not** `oats migrate`: kernel lock/package migration and
|
|
9
|
+
[OAS name migration](migration-from-oas.md) do not relocate knowledge, establish
|
|
10
|
+
v2 ownership or preserve source cursors. Nor does upgrading npm activate a new
|
|
11
|
+
knowledge layer. V2 uses external accepted bases and independent workers, not
|
|
12
|
+
`soul/knowledge/`, attached harvest commits or source-home watermarks.
|
|
13
|
+
|
|
14
|
+
## 1. Inventory and preserve before changing activation
|
|
15
|
+
|
|
16
|
+
- Record each scope's package lock, active knowledge binding, effective settings,
|
|
17
|
+
soul instructions/skills and current knowledge bytes. Do not hand-edit locks.
|
|
18
|
+
- Inventory live source homes, state/log/notes, v1 current/prepared watermark
|
|
19
|
+
files, active harvesters, unpublished commits and open PRs. Resolve or preserve
|
|
20
|
+
in-flight work deliberately; do not run old and new writers concurrently.
|
|
21
|
+
- Back up source material outside disposable homes/worktrees. Keep v1 artifacts
|
|
22
|
+
available until accepted delivery, owner cutover and fresh-reader verification
|
|
23
|
+
have succeeded. A successful scaffold or command exit is not learned expertise.
|
|
24
|
+
- Plan the deployment interruption and test the migration on isolated copies.
|
|
25
|
+
The required v2 spawn hook refuses a legacy `soul/knowledge/`; it never silently
|
|
26
|
+
substitutes an empty bundle.
|
|
27
|
+
|
|
28
|
+
After publication, explicitly acquire/update the catalog **Git** package and
|
|
29
|
+
review/re-trust its executable surfaces. An existing exact lock does not advance
|
|
30
|
+
on bare `oats install`. Do not install the npm bundled mirror as a self-contained
|
|
31
|
+
package: npm drops the source worker's canonical `CLAUDE.md` symlink.
|
|
32
|
+
|
|
33
|
+
## 2. Bind and provision external destinations
|
|
34
|
+
|
|
35
|
+
Follow [bindings and owner descriptors](knowledge.md#acquire-bind-and-provision-explicitly).
|
|
36
|
+
Choose stable base IDs, stable owner IDs, nonoverlapping node paths and durable
|
|
37
|
+
`stateDir`. `owns` routes responsibility; `reads` chooses starting context, not
|
|
38
|
+
permissions. Confirm aliases and owners explicitly, rather than deriving them
|
|
39
|
+
from an instance branch or name.
|
|
40
|
+
|
|
41
|
+
Configure the absolute `bindings-file` for each source soul. Remove obsolete v1
|
|
42
|
+
settings such as `record-window-turns` and `record-window-bytes`; v2 accepts only
|
|
43
|
+
`bindings-file`, `harvest-runtime` and `harvest-model`. Provision **empty owned
|
|
44
|
+
nodes** using `oats okf init`. Accept Git initialization through a reviewed PR
|
|
45
|
+
before migration delivery; directory provisioning requires explicit confirmation
|
|
46
|
+
and a genuinely non-Git location.
|
|
47
|
+
|
|
48
|
+
## 3. Stage and deliver each legacy bundle
|
|
49
|
+
|
|
50
|
+
From the durable deployment configuration context in an operator shell without
|
|
51
|
+
inherited instance identity, selecting the source soul:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
oats okf migrate --legacy /absolute/soul/knowledge --base project --node expert --output /absolute/empty-migration-stage --soul domain-expert --json
|
|
55
|
+
# Use the exact migration.json path returned above:
|
|
56
|
+
oats okf migrate --deliver /absolute/state/migrations/UUID/migration.json --soul domain-expert --json
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Staging preserves the full original in migration custody, rewrites bundle-root
|
|
60
|
+
Markdown links into the external node namespace and validates the whole base.
|
|
61
|
+
The output must be disjoint from **every** configured accepted base and directory
|
|
62
|
+
coordination artifact. The destination node must be empty; migration refuses
|
|
63
|
+
ambiguous automatic merges.
|
|
64
|
+
|
|
65
|
+
Delivery follows the actual provider protocol:
|
|
66
|
+
|
|
67
|
+
- **Git:** a real PR, never a direct push to the accepted branch. Review and merge
|
|
68
|
+
it, then repeat `migrate --deliver` to confirm merge-visible acceptance.
|
|
69
|
+
- **Directory:** recoverable publication with a cooperative lock, baseline check,
|
|
70
|
+
journal and validated acceptance receipt. Resolve any journal before proceeding.
|
|
71
|
+
|
|
72
|
+
A staged bundle, delivered PR or proposed owner mapping is not cutover.
|
|
73
|
+
|
|
74
|
+
## 4. Deliberate owner cutover
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
oats okf migrate --cutover /absolute/state/migrations/UUID/migration.json --soul-dir /absolute/soul --soul domain-expert --json
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Cutover requires accepted delivery, unchanged legacy bytes and current bindings
|
|
81
|
+
still pointing to the frozen delivered base. It verifies accepted readiness,
|
|
82
|
+
node owner/path and delivered content, then renames the old bundle into durable
|
|
83
|
+
custody and updates `soul/okf.json`. It changes no skills and leaves no permanent
|
|
84
|
+
knowledge symlink in the soul. Cross-device rename fails safely: arrange an
|
|
85
|
+
explicit operator cutover rather than deleting originals to force it. An
|
|
86
|
+
incomplete cutover marker blocks new source registration until that recorded
|
|
87
|
+
cutover is retried.
|
|
88
|
+
|
|
89
|
+
Explicitly review old soul instruction references to `soul/knowledge/`, direct
|
|
90
|
+
promotion and after-commit harvest. Point readers to the capability-provided
|
|
91
|
+
accepted views; ordinary agents capture but never edit accepted knowledge. This
|
|
92
|
+
instruction review is not an automatic rewrite performed by migration.
|
|
93
|
+
|
|
94
|
+
## 5. Preserve and re-register existing sources
|
|
95
|
+
|
|
96
|
+
For every surviving v1 source home:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
oats okf migrate --source-home /absolute/legacy-instance-home --soul domain-expert --json
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
This copies allowlisted state/log/notes and old cursors into migration custody,
|
|
103
|
+
**deleting nothing**. Old watermarks are retained as evidence, not trusted as v2
|
|
104
|
+
processing proof. After soul migration, explicit `harvest` from that clean deployment context
|
|
105
|
+
re-registers a source,
|
|
106
|
+
captures visible notes and record, and idempotently verifies its per-source job:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
oats okf harvest --home /absolute/legacy-instance-home --no-launch --soul domain-expert --json
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
`--no-launch` is a scaffold-only worker request, not a read-only operation: it
|
|
113
|
+
captures and writes durable state/schedule definitions, but starts no model and
|
|
114
|
+
installs no timer. Existing homes retain their composed capability snapshot;
|
|
115
|
+
plan refresh/replacement or dispatch through the deliberately selected v2
|
|
116
|
+
configuration context. Do not assume updating a package rewrites a running
|
|
117
|
+
home's curriculum, trust or native session. Preserve evidence before retiring
|
|
118
|
+
or replacing any old home. Replay may legitimately produce merge/drop judgments.
|
|
119
|
+
|
|
120
|
+
## 6. Verify before retiring old custody
|
|
121
|
+
|
|
122
|
+
Inspect the durable source descriptor and its receipts. Confirm frozen owners,
|
|
123
|
+
accepted view paths, captured notes **and full record windows**, processing and
|
|
124
|
+
provider acceptance separately. Verify live inspection only shows the matching
|
|
125
|
+
source's state/log/notes. After safe source retirement, `--source` inspection and
|
|
126
|
+
read/refresh must still work from durable context; new views belong in state,
|
|
127
|
+
not the deleted home or invoking repository.
|
|
128
|
+
|
|
129
|
+
Enable a host timer only with explicit operator consent after reviewing source
|
|
130
|
+
jobs and available worker runtimes. Existing no-launch sources cannot cause
|
|
131
|
+
scheduled model launches; do not turn an isolated rehearsal into a deployment.
|
|
132
|
+
A source whose final capture is incomplete must retain its home for retry.
|
|
133
|
+
|
|
134
|
+
Finally start a fresh, deliberately selected runtime instance and verify it can
|
|
135
|
+
find **and use** the accepted lesson without the original source. A no-launch
|
|
136
|
+
reader verifies layout and links, not model learning. Only then consider old
|
|
137
|
+
custody cleanup under an explicit retention decision; v2 does not automatically
|
|
138
|
+
remove preserved evidence, old views, migration archives or unresolved runs.
|