@ours.network/fleet-claude-code 0.9.4 → 0.9.5

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ours.network/fleet-claude-code",
3
- "version": "0.9.4",
3
+ "version": "0.9.5",
4
4
  "description": "Claude Code plugin for ours-fleet — spawn and oversee fleet agents from inside a session. Bundles the spawn-ours-agent and oversee-agents skills; the ours-fleet CLI (@ours.network/fleet) does the actual work.",
5
5
  "license": "FSL-1.1-Apache-2.0",
6
6
  "author": "Adapt Framework Solutions Ltd",
@@ -1,17 +1,20 @@
1
1
  ---
2
2
  name: oversee-agents
3
- description: Keep an eye on ours-fleet agents you spawned or were assigned - periodically peek into their tmux consoles, unstick them (answer prompts, approve dialogs, nudge) via ours-fleet send, escalate only when unsure. Use when the user or your persona/briefing says "keep an eye on X", "oversee agents", "watch agents", or right after spawning an agent.
3
+ description: Keep an eye on ours-fleet agents you spawned or were assigned, across tmux or ACP sessions. Inspect state, unstick agents through ours-fleet controls, and escalate consequential choices. Use when the user or your persona/briefing says "keep an eye on X", "oversee agents", "watch agents", or right after spawning an agent.
4
4
  ---
5
5
 
6
6
  # Oversee ours-fleet agents
7
7
 
8
- Your wards are subagents — you own their liveness. The core gives you two
9
- primitives; the judgment is yours.
8
+ Your wards are subagents — you own their liveness. Run `ours-fleet docs` when
9
+ you need the installed backend-specific controls.
10
10
 
11
- ```bash
12
- ours-fleet peek <Name> [lines] # console snapshot (default 40 lines)
13
- ours-fleet send <Name> "<text>" # type into its console (+ Enter)
14
- ours-fleet send <Name> --key <K> # raw key: Escape, Up, C-c, "1", ...
11
+ ```sh
12
+ ours-fleet status <Name>
13
+ ours-fleet peek <Name> [lines]
14
+ ours-fleet logs <Name>
15
+ ours-fleet send <Name> "<text>"
16
+ ours-fleet send <Name> --key <K> # tmux only
17
+ ours-fleet attach <Name> # tmux or ACP interactive control
15
18
  ```
16
19
 
17
20
  ## 1. Determine your assignment
@@ -35,7 +38,7 @@ Run `ours-fleet peek <Name>` per ward and classify the console:
35
38
 
36
39
  | Console shows | Action |
37
40
  |---|---|
38
- | Permission prompt, trust dialog, numbered menu ("1. Yes…") | Answer it directly: `ours-fleet send <Name> --key 1` (or the right key/text). Prefer the safe affirmative that unblocks the task the agent was assigned. |
41
+ | Permission prompt or trust dialog | Answer only within already-authorized scope. Use `send --key` for tmux or the `/permit` control shown by ACP `attach`. |
39
42
  | A question the agent asked its (absent) user | Answer with what you know of the mission: `ours-fleet send <Name> "<answer>"`. |
40
43
  | Crashed to a shell prompt / error text | Investigate (`ours-fleet logs <Name>`); for permanent roles `ours-fleet restart <Name>`; report to the owner. |
41
44
  | Idle with work still assigned | Nudge: `ours-fleet send <Name> "Status? Continue with <task> or declare BLOCKED."` |
@@ -45,7 +48,7 @@ Run `ours-fleet peek <Name>` per ward and classify the console:
45
48
 
46
49
  If the resolution would make a decision that is not yours (spending, deleting,
47
50
  publishing, changing scope), do NOT press through it — message the owner or
48
- coordinator over ours messaging (`send_message`) with the pane snapshot and your
51
+ coordinator over ours messaging (`send_message`) with the session snapshot and your
49
52
  recommendation.
50
53
 
51
54
  ## 5. Log
@@ -1,28 +1,49 @@
1
1
  ---
2
2
  name: spawn-ours-agent
3
- description: Spawn a new ours-fleet agent (permanent fleet role or temporary background agent) from inside a session. Use when the user says "spawn ours agent", "spawn an agent", "create a fleet agent", "start a background agent", or asks for a new subagent that should live in its own tmux session.
3
+ description: Spawn and configure an ours-fleet agent from Claude Code, using a permanent or temporary lifetime and a tmux or ACP session. Use when the user says "spawn ours agent", "spawn an agent", "create a fleet agent", "start a background agent", or asks for a separate supervised agent.
4
4
  ---
5
5
 
6
6
  # Spawn an ours-fleet agent
7
7
 
8
- You are about to create a new long-lived agent in its own tmux session, managed by
9
- `ours-fleet`. Follow these steps in order.
8
+ Use the `ours-fleet` CLI to create the role. Do not simulate a subagent inside
9
+ the current conversation.
10
10
 
11
- ## 1. Temporary or permanent?
11
+ ## 1. Read the installed CLI reference
12
+
13
+ Run:
14
+
15
+ ```sh
16
+ ours-fleet docs
17
+ ours-fleet doctor
18
+ ```
19
+
20
+ The installed CLI reference is authoritative for supported harnesses, session
21
+ backends, common permissions, and flags. Stop at a failed required doctor check.
22
+
23
+ ## 2. Resolve the role design
12
24
 
13
25
  Ask the requester (skip only if they already said):
14
26
 
15
27
  - **Permanent** — written to `~/fleet.d/<Name>.yaml`, supervised (auto-restart,
16
28
  survives reboot). For roles that should stay.
17
- - **Temporary** — plain tmux, auto-cleaned when it exits, gone on reboot. For
18
- one-off background work. Killed by you or the coordinator when done.
29
+ - **Temporary** — detached supervisor, auto-cleaned when it exits, gone on
30
+ reboot. For one-off background work.
31
+ - **Session:** `tmux` (detached interactive TUI) or `acp` (structured session
32
+ with attach/peek/send control). Both lifetimes support both backends.
33
+ - **Harness:** `claude-code` or `codex`.
34
+ - **Permissions:** prefer common `approval`, `filesystem`, and `unattended`
35
+ intent from `ours-fleet docs`; use harness-native flags only when requested.
36
+
37
+ Default to `--harness claude-code --session tmux --approval ask --filesystem
38
+ workspace --unattended deny`. Never grant `bypassPermissions`, unrestricted
39
+ filesystem access, or unattended approval without explicit user authorization.
19
40
 
20
- ## 2. Pick a name
41
+ ## 3. Pick a name
21
42
 
22
- `<Name>` must match `[A-Za-z0-9_-]+` (it becomes the tmux + service name). Check it
43
+ `<Name>` must match `[A-Za-z0-9_-]+` (it becomes the role/service name). Check it
23
44
  is free: `ours-fleet config` must not list it and `ours-fleet ls` must not show it.
24
45
 
25
- ## 3. Co-draft bio and persona
46
+ ## 4. Co-draft bio and persona
26
47
 
27
48
  Draft WITH the requester, iterating until they approve:
28
49
 
@@ -31,44 +52,48 @@ Draft WITH the requester, iterating until they approve:
31
52
  - **Persona** — the local operating contract (boundaries, quality bar, how it
32
53
  works, when it escalates).
33
54
 
34
- Write them to temp files to avoid shell-quoting problems:
55
+ Write approved text to uniquely named files under `/tmp` without interpolating
56
+ untrusted text into shell commands.
35
57
 
36
- ```bash
37
- cat > /tmp/spawn-bio.md <<'EOF'
38
- <approved bio>
39
- EOF
40
- cat > /tmp/spawn-persona.md <<'EOF'
41
- <approved persona>
42
- EOF
43
- ```
44
-
45
- ## 4. Spawn
58
+ ## 5. Spawn
46
59
 
47
60
  Permanent (announce it to yourself if you are its coordinator):
48
61
 
49
- ```bash
62
+ ```sh
50
63
  ours-fleet spawn <Name> \
64
+ --harness claude-code --session <tmux|acp> \
51
65
  --mission "<one-line mission>" \
52
66
  --bio-file /tmp/spawn-bio.md --persona-file /tmp/spawn-persona.md \
53
- [--harness claude-code] [--cwd <dir>] [--coordinator <YourRoleName>]
67
+ --approval ask --filesystem workspace --unattended deny \
68
+ [--cwd <dir>] [--coordinator <YourRoleName>]
54
69
  ```
55
70
 
56
71
  Temporary:
57
72
 
58
- ```bash
73
+ ```sh
59
74
  ours-fleet spawn --temp <Name> \
75
+ --harness claude-code --session <tmux|acp> \
60
76
  --mission "<one-line mission>" \
61
- --bio-file /tmp/spawn-bio.md --persona-file /tmp/spawn-persona.md
77
+ --bio-file /tmp/spawn-bio.md --persona-file /tmp/spawn-persona.md \
78
+ --approval ask --filesystem workspace --unattended deny
62
79
  ```
63
80
 
64
- ## 5. Verify
81
+ Pass model, permission, session, and coordinator choices exactly as approved.
82
+ Do not persist secrets in fleet YAML.
65
83
 
66
- ```bash
67
- ours-fleet peek <Name> 30 # console snapshot — it should be booting its briefing
68
- ours-fleet status <Name> # permanent roles: unit state
84
+ ## 6. Verify
85
+
86
+ ```sh
87
+ ours-fleet peek <Name> 60
88
+ ours-fleet status <Name>
69
89
  ```
70
90
 
71
- ## 6. Arm oversight
91
+ For ACP, `status` must report `backend: acp`, `alive: true`, and a running/idle
92
+ readiness. For tmux, the pane is authoritative. Confirm the role loaded its
93
+ briefing and reached identity binding. Never answer a permission prompt beyond
94
+ the scope already approved by the user.
95
+
96
+ ## 7. Arm oversight
72
97
 
73
98
  The spawner babysits its subagent. Ask the requester for a check interval
74
99
  (default **5m**), then follow the **oversee-agents** skill for `<Name>` at that