@scotthuang/agent-knock-knock 0.6.2 → 0.8.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/CHANGELOG.md +25 -0
- package/README.md +20 -6
- package/dist/src/cli.js +1150 -508
- package/dist/src/cli.js.map +1 -1
- package/dist/src/openclaw-plugin-helpers.js +86 -46
- package/dist/src/openclaw-plugin-helpers.js.map +1 -1
- package/dist/src/openclaw-plugin.d.ts +1 -0
- package/dist/src/openclaw-plugin.js +175 -172
- package/dist/src/openclaw-plugin.js.map +1 -1
- package/dist/src/session-selector.d.ts +18 -0
- package/dist/src/session-selector.js +18 -9
- package/dist/src/session-selector.js.map +1 -1
- package/dist/src/store.d.ts +50 -0
- package/dist/src/store.js +414 -42
- package/dist/src/store.js.map +1 -1
- package/docs/quickstart-tmux.md +4 -2
- package/openclaw.plugin.json +3 -7
- package/package.json +1 -1
- package/templates/openclaw-skills/agent-knock-knock/SKILL.md +12 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.8.0 - 2026-08-01
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
|
|
7
|
+
- Make `AKK list` terminal-first: every discovered tmux pane is a single primary `terminals[]` resource with its authoritative current turn or latest retained turn nested below it.
|
|
8
|
+
- Replace ambiguous managed-turn `send` hints with `follow_up`, keep historical turns explicitly addressable, and limit default selectors to physical terminal candidates.
|
|
9
|
+
- Determine current terminal ownership from the dispatch ledger and suppress side effects when ownership is unresolved, while keeping the pane visible.
|
|
10
|
+
|
|
11
|
+
### Removed
|
|
12
|
+
|
|
13
|
+
- Remove the public `delegated[]`, `terminal_controlled[]`, `tasks[]`, legacy `commands`, and `source: "akk_delegate"` list compatibility model.
|
|
14
|
+
|
|
15
|
+
## 0.7.0 - 2026-08-01
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
|
|
19
|
+
- Move managed task state to the permanent `~/.agent-knock-knock/store` root, with a compatibility manifest and conversation data under `conversations/`.
|
|
20
|
+
- Let OpenClaw-triggered `list` reconcile all managed tasks and `status` reconcile only its selected task. Standalone shell `list` and `status` stay read-only by default, expose reconciliation only through explicit `--reconcile`, and never change state while resolving a selector.
|
|
21
|
+
- Leave the former `~/.agent-knock-knock/conversations` store untouched and ignored. This release does not migrate old managed task records; existing tmux panes remain discoverable for new work.
|
|
22
|
+
|
|
23
|
+
### Security
|
|
24
|
+
|
|
25
|
+
- Refuse incompatible Store writers before changing managed state or performing terminal and Gateway side effects.
|
|
26
|
+
- Always use the plugin package's bundled relay and remove the configurable external `binPath` override.
|
|
27
|
+
|
|
3
28
|
## 0.6.2 - 2026-07-31
|
|
4
29
|
|
|
5
30
|
### Changed
|
package/README.md
CHANGED
|
@@ -106,7 +106,7 @@ Requirements:
|
|
|
106
106
|
|
|
107
107
|
The compatibility suite tests the normal installation floor and the Plugin API boundary with isolated state and the real packed artifact.
|
|
108
108
|
|
|
109
|
-
ClawHub installs the OpenClaw plugin, bundled AKK skill, and package-local relay CLI together.
|
|
109
|
+
ClawHub installs the OpenClaw plugin, bundled AKK skill, and package-local relay CLI together. The plugin always uses that bundled relay, so a stale shell command cannot be selected through plugin configuration. ClawHub does not add the `agent-knock-knock` command to your shell `PATH`. Do not run `install-openclaw` after a ClawHub install; that command belongs to the npm path below.
|
|
110
110
|
|
|
111
111
|
If you also want standalone shell commands such as `agent-knock-knock doctor`, install the npm package globally without running `install-openclaw`:
|
|
112
112
|
|
|
@@ -114,6 +114,8 @@ If you also want standalone shell commands such as `agent-knock-knock doctor`, i
|
|
|
114
114
|
npm install -g @scotthuang/agent-knock-knock
|
|
115
115
|
```
|
|
116
116
|
|
|
117
|
+
Standalone `agent-knock-knock list` and `status` are read-only with respect to managed-turn state by default. Passing `--reconcile` explicitly enables controlled reconciliation; OpenClaw does this for `/akk list`, `/akk status`, and the corresponding plugin tools.
|
|
118
|
+
|
|
117
119
|
### Alternative: Install from npm
|
|
118
120
|
|
|
119
121
|
```bash
|
|
@@ -195,9 +197,13 @@ The core command surface is intentionally small:
|
|
|
195
197
|
/akk cancel <session-selector>
|
|
196
198
|
```
|
|
197
199
|
|
|
200
|
+
`/akk list` performs a controlled reconciliation across managed turns, and `/akk status` limits reconciliation to the selected turn. This can close records whose idle retention has elapsed and restore eligible missing monitors, but it does not send terminal input or retry callback delivery. Standalone shell queries are read-only unless `--reconcile` is explicitly passed, and resolving a selector never changes turn state.
|
|
201
|
+
|
|
198
202
|
Selectors fail closed: `only` works only with one actionable target, `latest` requires a unique newest target, and `codex` or `claude` must identify exactly one eligible pane. `AKK list` shows stable short references while JSON output retains the authoritative full IDs. Before every terminal operation, AKK revalidates the expected agent PID and tmux pane identity, then confirms that the process and pane working directories still match; every send also revalidates the idle prompt immediately before typing.
|
|
199
203
|
|
|
200
|
-
For natural-language tool use, `agent_knock_knock_list`
|
|
204
|
+
For natural-language tool use, `agent_knock_knock_list` is terminal-first. Each live pane appears exactly once in `terminals[]`; `process_state` reports whether its coding-agent process is alive and `activity_state` reports the parsed screen state. Its optional `managed.current_turn` is the authoritative active AKK turn, while `managed.recent_turn` is retained history and does not occupy the terminal. Pass `all=true` to include older entries in `managed.history`. By default, `unavailable_managed_turns[]` contains attention-needed records whose pane cannot be presented as a live terminal; `all=true` also includes retained unavailable history.
|
|
205
|
+
|
|
206
|
+
Use only an `available_actions` entry returned in that snapshot, begin with its prefilled authoritative arguments, and supply every `missing_required` field. A terminal's `send` action starts a new managed turn; a managed turn's `follow_up` action continues that exact turn through the same `agent_knock_knock_send` tool. Status, approval, cancellation, renewal, callback retry, and close use `conversation_id`. For an ordinary send or follow-up, add only `request`—`timeoutSeconds` is unsupported, and monitoring limits should be omitted unless the user explicitly asks to change them. AKK revalidates availability before every side effect.
|
|
201
207
|
|
|
202
208
|
Workspace is not a routing boundary. AKK can list, inspect, and control verified panes across projects; when more than one target matches, use a selector to choose one explicitly.
|
|
203
209
|
|
|
@@ -209,13 +215,15 @@ AKK works without project-specific plugin configuration. It reads these optional
|
|
|
209
215
|
|
|
210
216
|
| Option | Default | Purpose |
|
|
211
217
|
| --- | --- | --- |
|
|
212
|
-
| `storeDir` | `~/.agent-knock-knock/
|
|
218
|
+
| `storeDir` | `~/.agent-knock-knock/store` | Stable Store root for the compatibility manifest and managed conversations. |
|
|
213
219
|
| `openclawBin` | Auto-detected | OpenClaw CLI used for callback delivery. |
|
|
214
220
|
| `codexHome` | Auto-detected | Optional Codex home used to identify Codex sessions running in tmux. |
|
|
215
|
-
| `idleTimeoutMinutes` | `10080` |
|
|
221
|
+
| `idleTimeoutMinutes` | `10080` | Idle retention checked during controlled reconciliation. |
|
|
216
222
|
| `agentTimeoutMinutes` | `60` | Terminal inactivity timeout. |
|
|
217
223
|
| `agentHardTimeoutMinutes` | `720` | Maximum terminal monitor lifetime. |
|
|
218
224
|
|
|
225
|
+
Custom `storeDir` values use the same Store structure. AKK initializes a missing or empty directory and refuses a non-empty manifestless directory instead of guessing how to write it.
|
|
226
|
+
|
|
219
227
|
See [`openclaw.plugin.json`](https://github.com/scotthuang/agent-knock-knock/blob/main/openclaw.plugin.json) for the complete schema.
|
|
220
228
|
|
|
221
229
|
## Approvals
|
|
@@ -254,7 +262,7 @@ Place `autoApprove` inside the plugin `config` object. It is disabled by default
|
|
|
254
262
|
|
|
255
263
|
AKK has no hosted control plane or telemetry and does not modify coding-agent settings. Its terminal state and logs stay on your machine; Claude approval callbacks omit raw commands, while Codex may include the visible command details OpenClaw needs to present for review.
|
|
256
264
|
|
|
257
|
-
At startup, AKK only registers its tools and reconciles monitors for existing
|
|
265
|
+
At startup, AKK only registers its tools and reconciles monitors for existing managed turns. It never launches a coding agent; new work reuses exactly one eligible agent pane that you already started in tmux.
|
|
258
266
|
|
|
259
267
|
Your task content is still processed by OpenClaw and the coding-agent or model providers you configure. Review agent permissions and keep secrets out of task prompts.
|
|
260
268
|
|
|
@@ -311,7 +319,13 @@ gh workflow run clawhub-publish.yml --ref vX.Y.Z -f dry_run=false
|
|
|
311
319
|
|
|
312
320
|
## Storage and Logs
|
|
313
321
|
|
|
314
|
-
|
|
322
|
+
Managed state now lives in the stable `~/.agent-knock-knock/store` root. Its manifest prevents an incompatible AKK writer from changing task state. Directories use mode `0700`; state and log files use `0600`.
|
|
323
|
+
|
|
324
|
+
The manifest checks storage format and writer behavior separately. An unknown `format_version` is not read. When the format is readable but `writer_protocol` differs, normal queries remain available, explicit reconciliation reports `skipped`, and every mutation fails closed before terminal or Gateway side effects.
|
|
325
|
+
|
|
326
|
+
The former `~/.agent-knock-knock/conversations` directory is left untouched; AKK does not read or migrate it. Existing Codex and Claude Code tmux panes remain available through live discovery, while their old managed-turn IDs, callback associations, and follow-up records are not carried into the new Store. Compatible future upgrades continue using the stable Store rather than creating a directory per package version.
|
|
327
|
+
|
|
328
|
+
Runtime logs redact common secrets and default to 14-day retention. Configure storage and logging with `--store-dir`, `AKK_LOG_DIR`, `AKK_LOG_LEVEL`, and `AKK_LOG_RETENTION_DAYS`; use a dedicated custom log directory.
|
|
315
329
|
|
|
316
330
|
## Security
|
|
317
331
|
|