@awebai/oats 0.38.0 → 0.38.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/docs/desktop.md +25 -5
- package/docs/integrations.md +5 -2
- package/docs/official-catalog.md +1 -1
- package/docs/packages.md +2 -2
- package/docs/release-notes/v0.38.1.md +50 -0
- package/lib/session-viewer.mjs +1 -0
- package/package-catalog.json +1 -1
- package/package.json +1 -1
package/docs/desktop.md
CHANGED
|
@@ -89,10 +89,15 @@ new PATH.
|
|
|
89
89
|
|
|
90
90
|
## Opening a workspace
|
|
91
91
|
|
|
92
|
-
The app
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
92
|
+
The app opens the workspaces you had open, plus the directory it was
|
|
93
|
+
launched with (`--dir`, or the folder it was started from) when that is an
|
|
94
|
+
OATS deployment — the directory (the operator's choice) holding
|
|
95
|
+
`oats-local.yaml` and `agents/`. A folder that is not a deployment is never
|
|
96
|
+
opened: started from Finder, with nothing open to restore, the window shows
|
|
97
|
+
the workspace switcher instead. It lists the deployments on this computer
|
|
98
|
+
under **On this computer** (those directly inside `~/Agents`, and a saved
|
|
99
|
+
one that is not open); click one to open it in this window. **Add local
|
|
100
|
+
workspace… → Browse** points it at any other deployment.
|
|
96
101
|
A picked folder without `oats-local.yaml` is offered onboarding instead. The
|
|
97
102
|
Desktop never parses the deployment: its members, lock state and header come
|
|
98
103
|
from `oats workspace status`, and its instances from the deployment's one
|
|
@@ -246,6 +251,21 @@ any other exit code. Closing the tab ends the reconnecting. Reconnecting
|
|
|
246
251
|
never stops or restarts the agent on the server: only the local ssh viewer
|
|
247
252
|
ends.
|
|
248
253
|
|
|
254
|
+
## Copy from a terminal
|
|
255
|
+
|
|
256
|
+
Drag over an agent's output to select it. When you release the mouse, the
|
|
257
|
+
selection is copied to the clipboard, ready to paste anywhere. ⌘C, Edit › Copy
|
|
258
|
+
and the right-click menu then copy nothing new: the text is already there. The
|
|
259
|
+
selection is tmux's own (copy mode), so it can run past the visible screen
|
|
260
|
+
into the scrollback, and tmux sends its copy to the Desktop, which writes it to
|
|
261
|
+
the clipboard. Nothing in a terminal can read the clipboard.
|
|
262
|
+
|
|
263
|
+
If the agent's program uses the mouse itself, the drag goes to it instead. Hold
|
|
264
|
+
**Option** (macOS) or **Shift** while dragging to select in the terminal itself,
|
|
265
|
+
then copy with ⌘C or the right-click menu. If your `~/.tmux.conf` sets
|
|
266
|
+
`set-clipboard off`, tmux keeps its copies to itself: use Option-drag. ⌘V
|
|
267
|
+
pastes into the agent's draft as before.
|
|
268
|
+
|
|
249
269
|
## Attach files and screenshots
|
|
250
270
|
|
|
251
271
|
Drop a file onto an agent terminal to insert its path into that agent's draft.
|
|
@@ -284,7 +304,7 @@ error in the terminal. Each drop/paste accepts up to 16 files totaling 25 MB.
|
|
|
284
304
|
| "Compatible oats CLI required" card | No CLI, or a version outside the range the card itself states. Copy the card's install command, or **Choose oats…** to point at the right binary; **Retry** re-probes. Spawn is disabled until a compatible CLI is verified. |
|
|
285
305
|
| Spawn disabled, no card | The probe hasn't settled yet (transient, resolves in ms). If it persists, the backend is unreachable — restart the app. |
|
|
286
306
|
| Terminals fail to open ("could not attach") | tmux missing, or no live session for that instance. Install tmux (`tmux -V`); check `tmux ls`. |
|
|
287
|
-
| Can't select/copy text in a terminal tab |
|
|
307
|
+
| Can't select/copy text in a terminal tab | A plain drag copies on release ([Copy from a terminal](#copy-from-a-terminal)). If nothing reaches the clipboard, the program in the pane has the mouse, or your tmux config sets `set-clipboard off`: hold **Option** (macOS) or **Shift** while dragging, then copy (Cmd+C / right-click → Copy). |
|
|
288
308
|
| macOS "app is damaged / can't be opened" | Ad-hoc-signed (not notarized) build + quarantine. Right-click → Open, or clear the quarantine attribute (above). If it persists, verify the bundle: `codesign --verify --deep --strict --verbose=2 "/Applications/OATS Desktop.app"` — a non-zero exit means a broken artifact, report it. |
|
|
289
309
|
| Roster empty | The opened directory isn't an OATS deployment (it needs `oats-local.yaml` and `agents/`). Use the workspace switcher → Add workspace to select the right folder. |
|
|
290
310
|
|
package/docs/integrations.md
CHANGED
|
@@ -41,7 +41,7 @@ arrives from.
|
|
|
41
41
|
# oats-workspace.yaml: one default per slot, for every soul
|
|
42
42
|
packages:
|
|
43
43
|
oats.okf: v4.1.1
|
|
44
|
-
oats.aweb: v1.
|
|
44
|
+
oats.aweb: v1.20.0
|
|
45
45
|
oats.linear: v1.0.1
|
|
46
46
|
oats.jira: v1.0.1
|
|
47
47
|
defaults:
|
|
@@ -89,7 +89,10 @@ operations in full.
|
|
|
89
89
|
`knowledge-maintainer` package soul reviews the resulting PRs.
|
|
90
90
|
- **`oats.aweb`** mints a messaging identity for each instance at spawn and
|
|
91
91
|
removes it at retire, contributes the aweb messaging skills, and wires the
|
|
92
|
-
channel so sessions are woken by mail. `oats aweb roster` lists the team
|
|
92
|
+
channel so sessions are woken by mail. `oats aweb roster` lists the team:
|
|
93
|
+
its membership certificates and workspaces, one entry per alias with its
|
|
94
|
+
sources, status and kind (global identities first), and says when either
|
|
95
|
+
source is incomplete.
|
|
93
96
|
- **`oats.jira`** teaches the `jira-tasks` protocol and adds an advisory spawn
|
|
94
97
|
hook that names the configured site and project.
|
|
95
98
|
- **`oats.linear`** provides JSON-first `oats linear` commands, the
|
package/docs/official-catalog.md
CHANGED
|
@@ -11,7 +11,7 @@ or workspace membership alone does not make a package official.
|
|
|
11
11
|
|---|---|---|---|
|
|
12
12
|
| `oats.framework` | `oats-framework/v1.5.0` (this repository) | `oats.core`, `oats.setup`, `oats.knowledge-theory` | `knowledge-theory-expert` |
|
|
13
13
|
| `oats.okf` | `v4.1.1` | `oats.okf` (knowledge), `oats.okf-harvest`, `oats.okf-maintenance` | `knowledge-harvester`, `knowledge-maintainer` |
|
|
14
|
-
| `oats.aweb` | `v1.
|
|
14
|
+
| `oats.aweb` | `v1.20.0` | `oats.aweb` (messaging) | |
|
|
15
15
|
| `oats.engineering` | `v1.5.0` | `oats.engineering-expert`, `oats.developer`, `oats.code-review` | `code-reviewer` |
|
|
16
16
|
| `oats.authoring` | `v1.0.3` | `oats.authoring` | |
|
|
17
17
|
| `oats.jira` | `v1.0.1` | `oats.jira` (tasks) | |
|
package/docs/packages.md
CHANGED
|
@@ -76,7 +76,7 @@ members:
|
|
|
76
76
|
packages:
|
|
77
77
|
oats.framework: v1.5.0
|
|
78
78
|
oats.okf: v4.1.1
|
|
79
|
-
oats.aweb: v1.
|
|
79
|
+
oats.aweb: v1.20.0
|
|
80
80
|
teams:
|
|
81
81
|
platform: { team: "platform:acme.aweb.ai", description: Platform engineering }
|
|
82
82
|
defaults:
|
|
@@ -134,7 +134,7 @@ Declaring a package in the workspace's `packages:` is the trust decision
|
|
|
134
134
|
## `oats package add | remove`
|
|
135
135
|
|
|
136
136
|
```bash
|
|
137
|
-
oats package add oats.aweb v1.
|
|
137
|
+
oats package add oats.aweb v1.20.0 # a catalog version
|
|
138
138
|
oats package add acme.tools git:github.com/acme/tools@v0.4.0
|
|
139
139
|
oats package remove acme.tools
|
|
140
140
|
```
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# OATS 0.38.1
|
|
2
|
+
|
|
3
|
+
## Changed
|
|
4
|
+
|
|
5
|
+
- **oats.aweb 1.20.0: `oats aweb roster` lists who is on the team and says
|
|
6
|
+
what each entry is** (awebai/oats-aweb#46). The roster printed only the
|
|
7
|
+
team's membership certificates (`aw id team members`). That listing omits
|
|
8
|
+
identities the registry does not list, such as a team's retained global
|
|
9
|
+
coordinator and dashboard humans. It also listed deployment roots and
|
|
10
|
+
certificates with no workspace exactly like agents. The roster is now the
|
|
11
|
+
union of those certificates and the team's workspace presence
|
|
12
|
+
(`aw workspace status`), read from the minting root. Each entry has its
|
|
13
|
+
sources (`certificate`, `presence` or both), its status (active, when last
|
|
14
|
+
seen, or `certificate only: no workspace record`) and a kind:
|
|
15
|
+
- `global identity`, from the identity scope, listed first;
|
|
16
|
+
- `human` and `hosted agent`, from the session context;
|
|
17
|
+
- `instance` and `deployment root`, from the workspace path;
|
|
18
|
+
- `unknown`.
|
|
19
|
+
An inferred kind says so, and nothing is called retired. aw does not mark a
|
|
20
|
+
team's coordinator, and the roster says so. When a source cannot be read,
|
|
21
|
+
or presence is past its 200-workspace cap, the roster still lists what it
|
|
22
|
+
has and says it is incomplete. `oats aweb roster --json` is now an oats.aweb
|
|
23
|
+
document (`{team, members, certificatesComplete, presenceComplete,
|
|
24
|
+
problems}`) instead of aw's raw listing. The oats-aweb skill, the inject
|
|
25
|
+
and the spawn brief say what the roster shows and what it can't tell you.
|
|
26
|
+
|
|
27
|
+
## Fixed
|
|
28
|
+
|
|
29
|
+
- **The Desktop opened from Finder no longer shows `/` as its workspace**
|
|
30
|
+
(awebai/oats#518). A Finder launch starts in `/`, and when no saved
|
|
31
|
+
workspace was a deployment, the Desktop served `/`. It titled the window
|
|
32
|
+
`/`, showed `E_NO_DEPLOYMENT` in Instances, and remembered `/` in
|
|
33
|
+
`windows.json` for every later launch. A folder that is not a deployment is
|
|
34
|
+
now never served, bound to a window or saved. With no deployment to open,
|
|
35
|
+
the window opens on the workspace switcher, which lists the deployments
|
|
36
|
+
directly inside `~/Agents` under "On this computer": one click opens one in
|
|
37
|
+
that window. A window remembered on `/` is forgotten at launch.
|
|
38
|
+
|
|
39
|
+
- **A window with no workspace lists the workspaces served after it opened**
|
|
40
|
+
(awebai/oats#521). Its choices were fixed when it opened, so remote
|
|
41
|
+
workspaces arriving a few seconds after launch never appeared and the
|
|
42
|
+
switcher said "No workspace choices reported."
|
|
43
|
+
|
|
44
|
+
- **Copying an agent's output in the Desktop** (awebai/oats#520). A plain
|
|
45
|
+
drag over a terminal now selects the text (tmux's copy mode, so it can
|
|
46
|
+
reach into the scrollback) and copies it to the clipboard on release;
|
|
47
|
+
⌘C, Edit › Copy and the right-click menu find it there. The Desktop takes
|
|
48
|
+
tmux's copies (OSC 52) write-only: nothing in a terminal can read the
|
|
49
|
+
clipboard. Remote terminals (`oats session attach --server`) bind the same
|
|
50
|
+
drag. ⌘V is unchanged; Option-drag still makes a terminal-only selection.
|
package/lib/session-viewer.mjs
CHANGED
|
@@ -27,6 +27,7 @@ export function prepareSessionViewer(target, { exec = execFileSync } = {}) {
|
|
|
27
27
|
run(["set-option", "-t", viewer, "status", "off"]);
|
|
28
28
|
run(["unbind-key", "-a", "-q", "-T", "oatsview-locked"]);
|
|
29
29
|
run(["bind-key", "-T", "oatsview-locked", "WheelUpPane", "if-shell", "-F", "#{||:#{pane_in_mode},#{mouse_any_flag}}", "send-keys -M", "copy-mode -e; send-keys -M"]);
|
|
30
|
+
run(["bind-key", "-T", "oatsview-locked", "MouseDrag1Pane", "if-shell", "-F", "#{||:#{pane_in_mode},#{mouse_any_flag}}", "send-keys -M", "copy-mode -M"]);
|
|
30
31
|
run(["set-option", "-t", viewer, "mouse", "on"]);
|
|
31
32
|
const env = { ...process.env }; delete env.TMUX;
|
|
32
33
|
return { binary: "tmux", args: ["-u", "-S", target.socket, "attach-session", "-t", `=${viewer}`], env, cleanup };
|
package/package-catalog.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@awebai/oats",
|
|
3
|
-
"version": "0.38.
|
|
3
|
+
"version": "0.38.1",
|
|
4
4
|
"description": "OATS (Open Agent Team Specification) — durable souls, disposable instances, targetable capability packages, and the runtime-neutral oats CLI/kernel.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agents",
|