@scotthuang/agent-knock-knock 0.13.18 → 0.14.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/CHANGELOG.md +41 -0
- package/CONTRIBUTING.md +212 -0
- package/README.md +106 -166
- package/connectors/deepseek-harness/LICENSE +21 -0
- package/connectors/deepseek-harness/README.md +406 -0
- package/connectors/pi/LICENSE +21 -0
- package/connectors/pi/README.md +446 -0
- package/dist/src/backend-public-progress.d.ts +38 -0
- package/dist/src/backend-public-progress.js +106 -0
- package/dist/src/backend-public-progress.js.map +1 -0
- package/dist/src/backend-recovery-semantic.d.ts +16 -0
- package/dist/src/backend-recovery-semantic.js +113 -0
- package/dist/src/backend-recovery-semantic.js.map +1 -0
- package/dist/src/backend-task-recovery.d.ts +103 -0
- package/dist/src/backend-task-recovery.js +143 -0
- package/dist/src/backend-task-recovery.js.map +1 -0
- package/dist/src/callback-transport.d.ts +8 -0
- package/dist/src/callback-transport.js +14 -0
- package/dist/src/callback-transport.js.map +1 -1
- package/dist/src/cli-core.js +20 -10
- package/dist/src/cli-core.js.map +1 -1
- package/dist/src/cli-runtime-context.d.ts +5 -0
- package/dist/src/cli-runtime-context.js.map +1 -1
- package/dist/src/codex-app-server-read-client.d.ts +3 -0
- package/dist/src/codex-app-server-read-client.js.map +1 -1
- package/dist/src/codex-native-cli-adapter.d.ts +6 -0
- package/dist/src/codex-native-cli-adapter.js +303 -0
- package/dist/src/codex-native-cli-adapter.js.map +1 -0
- package/dist/src/codex-native-client-interactions.d.ts +6 -0
- package/dist/src/codex-native-client-interactions.js +124 -0
- package/dist/src/codex-native-client-interactions.js.map +1 -0
- package/dist/src/codex-native-client-rpc.d.ts +21 -0
- package/dist/src/codex-native-client-rpc.js +137 -0
- package/dist/src/codex-native-client-rpc.js.map +1 -0
- package/dist/src/codex-native-client.d.ts +42 -0
- package/dist/src/codex-native-client.js +331 -0
- package/dist/src/codex-native-client.js.map +1 -0
- package/dist/src/codex-native-identity.d.ts +6 -0
- package/dist/src/codex-native-identity.js +42 -0
- package/dist/src/codex-native-identity.js.map +1 -0
- package/dist/src/codex-native-monitor.d.ts +4 -0
- package/dist/src/codex-native-monitor.js +92 -0
- package/dist/src/codex-native-monitor.js.map +1 -0
- package/dist/src/codex-native-outbox.d.ts +16 -0
- package/dist/src/codex-native-outbox.js +120 -0
- package/dist/src/codex-native-outbox.js.map +1 -0
- package/dist/src/codex-native-public-projection.d.ts +545 -0
- package/dist/src/codex-native-public-projection.js +182 -0
- package/dist/src/codex-native-public-projection.js.map +1 -0
- package/dist/src/codex-native-record-store.d.ts +27 -0
- package/dist/src/codex-native-record-store.js +111 -0
- package/dist/src/codex-native-record-store.js.map +1 -0
- package/dist/src/codex-native-response-service.d.ts +69 -0
- package/dist/src/codex-native-response-service.js +244 -0
- package/dist/src/codex-native-response-service.js.map +1 -0
- package/dist/src/codex-native-runtime.d.ts +46 -0
- package/dist/src/codex-native-runtime.js +112 -0
- package/dist/src/codex-native-runtime.js.map +1 -0
- package/dist/src/codex-native-semantic.d.ts +17 -0
- package/dist/src/codex-native-semantic.js +175 -0
- package/dist/src/codex-native-semantic.js.map +1 -0
- package/dist/src/codex-native-snapshot.d.ts +19 -0
- package/dist/src/codex-native-snapshot.js +160 -0
- package/dist/src/codex-native-snapshot.js.map +1 -0
- package/dist/src/codex-native-state-store.d.ts +61 -0
- package/dist/src/codex-native-state-store.js +132 -0
- package/dist/src/codex-native-state-store.js.map +1 -0
- package/dist/src/codex-native-task-service.d.ts +71 -0
- package/dist/src/codex-native-task-service.js +503 -0
- package/dist/src/codex-native-task-service.js.map +1 -0
- package/dist/src/codex-native-types.d.ts +92 -0
- package/dist/src/codex-native-types.js +15 -0
- package/dist/src/codex-native-types.js.map +1 -0
- package/dist/src/conversation-list.d.ts +12 -0
- package/dist/src/conversation-list.js +30 -0
- package/dist/src/conversation-list.js.map +1 -0
- package/dist/src/conversation-route-dispatch.d.ts +13 -0
- package/dist/src/conversation-route-dispatch.js +66 -0
- package/dist/src/conversation-route-dispatch.js.map +1 -0
- package/dist/src/conversation-route-legacy.d.ts +18 -0
- package/dist/src/conversation-route-legacy.js +54 -0
- package/dist/src/conversation-route-legacy.js.map +1 -0
- package/dist/src/conversation-route-store.d.ts +51 -0
- package/dist/src/conversation-route-store.js +126 -0
- package/dist/src/conversation-route-store.js.map +1 -0
- package/dist/src/conversation-routing-cli-adapter.d.ts +12 -0
- package/dist/src/conversation-routing-cli-adapter.js +211 -0
- package/dist/src/conversation-routing-cli-adapter.js.map +1 -0
- package/dist/src/conversation-routing-commands.d.ts +11 -0
- package/dist/src/conversation-routing-commands.js +85 -0
- package/dist/src/conversation-routing-commands.js.map +1 -0
- package/dist/src/conversation-routing-home.d.ts +26 -0
- package/dist/src/conversation-routing-home.js +105 -0
- package/dist/src/conversation-routing-home.js.map +1 -0
- package/dist/src/conversation-routing-identity.d.ts +40 -0
- package/dist/src/conversation-routing-identity.js +174 -0
- package/dist/src/conversation-routing-identity.js.map +1 -0
- package/dist/src/conversation-runtime-route-store.d.ts +11 -0
- package/dist/src/conversation-runtime-route-store.js +118 -0
- package/dist/src/conversation-runtime-route-store.js.map +1 -0
- package/dist/src/desktop-async-interactions.d.ts +15 -0
- package/dist/src/desktop-async-interactions.js +88 -0
- package/dist/src/desktop-async-interactions.js.map +1 -0
- package/dist/src/desktop-async-state.d.ts +5 -0
- package/dist/src/desktop-async-state.js +53 -0
- package/dist/src/desktop-async-state.js.map +1 -0
- package/dist/src/desktop-cli-adapter.d.ts +7 -0
- package/dist/src/desktop-cli-adapter.js +343 -0
- package/dist/src/desktop-cli-adapter.js.map +1 -0
- package/dist/src/desktop-cli-controls.d.ts +9 -0
- package/dist/src/desktop-cli-controls.js +45 -0
- package/dist/src/desktop-cli-controls.js.map +1 -0
- package/dist/src/desktop-command-presentation.d.ts +2 -0
- package/dist/src/desktop-command-presentation.js +31 -0
- package/dist/src/desktop-command-presentation.js.map +1 -0
- package/dist/src/desktop-control-semantic.d.ts +8 -0
- package/dist/src/desktop-control-semantic.js +68 -0
- package/dist/src/desktop-control-semantic.js.map +1 -0
- package/dist/src/desktop-identity.d.ts +5 -0
- package/dist/src/desktop-identity.js +40 -0
- package/dist/src/desktop-identity.js.map +1 -0
- package/dist/src/desktop-interaction-projection.d.ts +57 -0
- package/dist/src/desktop-interaction-projection.js +196 -0
- package/dist/src/desktop-interaction-projection.js.map +1 -0
- package/dist/src/desktop-interaction-state.d.ts +3 -0
- package/dist/src/desktop-interaction-state.js +48 -0
- package/dist/src/desktop-interaction-state.js.map +1 -0
- package/dist/src/desktop-ipc-async-answer.d.ts +9 -0
- package/dist/src/desktop-ipc-async-answer.js +71 -0
- package/dist/src/desktop-ipc-async-answer.js.map +1 -0
- package/dist/src/desktop-ipc-client.d.ts +47 -0
- package/dist/src/desktop-ipc-client.js +400 -0
- package/dist/src/desktop-ipc-client.js.map +1 -0
- package/dist/src/desktop-ipc-native-operations.d.ts +11 -0
- package/dist/src/desktop-ipc-native-operations.js +126 -0
- package/dist/src/desktop-ipc-native-operations.js.map +1 -0
- package/dist/src/desktop-ipc-transport.d.ts +13 -0
- package/dist/src/desktop-ipc-transport.js +123 -0
- package/dist/src/desktop-ipc-transport.js.map +1 -0
- package/dist/src/desktop-list.d.ts +25 -0
- package/dist/src/desktop-list.js +55 -0
- package/dist/src/desktop-list.js.map +1 -0
- package/dist/src/desktop-metadata-reader.d.ts +30 -0
- package/dist/src/desktop-metadata-reader.js +182 -0
- package/dist/src/desktop-metadata-reader.js.map +1 -0
- package/dist/src/desktop-monitor.d.ts +4 -0
- package/dist/src/desktop-monitor.js +101 -0
- package/dist/src/desktop-monitor.js.map +1 -0
- package/dist/src/desktop-public-projection.d.ts +6 -0
- package/dist/src/desktop-public-projection.js +134 -0
- package/dist/src/desktop-public-projection.js.map +1 -0
- package/dist/src/desktop-request-interactions.d.ts +14 -0
- package/dist/src/desktop-request-interactions.js +144 -0
- package/dist/src/desktop-request-interactions.js.map +1 -0
- package/dist/src/desktop-response-dispatch.d.ts +14 -0
- package/dist/src/desktop-response-dispatch.js +19 -0
- package/dist/src/desktop-response-dispatch.js.map +1 -0
- package/dist/src/desktop-response-evidence.d.ts +4 -0
- package/dist/src/desktop-response-evidence.js +19 -0
- package/dist/src/desktop-response-evidence.js.map +1 -0
- package/dist/src/desktop-response-service.d.ts +11 -0
- package/dist/src/desktop-response-service.js +188 -0
- package/dist/src/desktop-response-service.js.map +1 -0
- package/dist/src/desktop-response-store.d.ts +35 -0
- package/dist/src/desktop-response-store.js +58 -0
- package/dist/src/desktop-response-store.js.map +1 -0
- package/dist/src/desktop-response-types.d.ts +20 -0
- package/dist/src/desktop-response-types.js +2 -0
- package/dist/src/desktop-response-types.js.map +1 -0
- package/dist/src/desktop-response-value.d.ts +6 -0
- package/dist/src/desktop-response-value.js +31 -0
- package/dist/src/desktop-response-value.js.map +1 -0
- package/dist/src/desktop-runtime.d.ts +153 -0
- package/dist/src/desktop-runtime.js +88 -0
- package/dist/src/desktop-runtime.js.map +1 -0
- package/dist/src/desktop-semantic.d.ts +21 -0
- package/dist/src/desktop-semantic.js +140 -0
- package/dist/src/desktop-semantic.js.map +1 -0
- package/dist/src/desktop-session-catalog.d.ts +68 -0
- package/dist/src/desktop-session-catalog.js +225 -0
- package/dist/src/desktop-session-catalog.js.map +1 -0
- package/dist/src/desktop-session-controls.d.ts +145 -0
- package/dist/src/desktop-session-controls.js +176 -0
- package/dist/src/desktop-session-controls.js.map +1 -0
- package/dist/src/desktop-sidebar-metadata.d.ts +27 -0
- package/dist/src/desktop-sidebar-metadata.js +83 -0
- package/dist/src/desktop-sidebar-metadata.js.map +1 -0
- package/dist/src/desktop-sidebar-projects.d.ts +10 -0
- package/dist/src/desktop-sidebar-projects.js +31 -0
- package/dist/src/desktop-sidebar-projects.js.map +1 -0
- package/dist/src/desktop-sidebar-selection.d.ts +28 -0
- package/dist/src/desktop-sidebar-selection.js +85 -0
- package/dist/src/desktop-sidebar-selection.js.map +1 -0
- package/dist/src/desktop-snapshot-details.d.ts +4 -0
- package/dist/src/desktop-snapshot-details.js +116 -0
- package/dist/src/desktop-snapshot-details.js.map +1 -0
- package/dist/src/desktop-snapshot.d.ts +11 -0
- package/dist/src/desktop-snapshot.js +281 -0
- package/dist/src/desktop-snapshot.js.map +1 -0
- package/dist/src/desktop-state-store.d.ts +72 -0
- package/dist/src/desktop-state-store.js +269 -0
- package/dist/src/desktop-state-store.js.map +1 -0
- package/dist/src/desktop-task-interactions.d.ts +10 -0
- package/dist/src/desktop-task-interactions.js +93 -0
- package/dist/src/desktop-task-interactions.js.map +1 -0
- package/dist/src/desktop-task-recovery.d.ts +38 -0
- package/dist/src/desktop-task-recovery.js +172 -0
- package/dist/src/desktop-task-recovery.js.map +1 -0
- package/dist/src/desktop-task-service.d.ts +54 -0
- package/dist/src/desktop-task-service.js +442 -0
- package/dist/src/desktop-task-service.js.map +1 -0
- package/dist/src/desktop-types.d.ts +283 -0
- package/dist/src/desktop-types.js +13 -0
- package/dist/src/desktop-types.js.map +1 -0
- package/dist/src/host-monitor-reconciliation.js +36 -4
- package/dist/src/host-monitor-reconciliation.js.map +1 -1
- package/dist/src/host-profile-runtime.js +7 -3
- package/dist/src/host-profile-runtime.js.map +1 -1
- package/dist/src/local-codex-cli-adapter.d.ts +7 -0
- package/dist/src/local-codex-cli-adapter.js +13 -0
- package/dist/src/local-codex-cli-adapter.js.map +1 -0
- package/dist/src/monitor-deadline-policy.d.ts +8 -0
- package/dist/src/monitor-deadline-policy.js +16 -0
- package/dist/src/monitor-deadline-policy.js.map +1 -0
- package/dist/src/openclaw-callback-transport.js +2 -1
- package/dist/src/openclaw-callback-transport.js.map +1 -1
- package/dist/src/semantic-conversation-target.d.ts +4 -0
- package/dist/src/semantic-conversation-target.js +20 -0
- package/dist/src/semantic-conversation-target.js.map +1 -0
- package/dist/src/semantic-permission-control.js +47 -9
- package/dist/src/semantic-permission-control.js.map +1 -1
- package/dist/src/semantic-private-authority-offers.d.ts +1 -1
- package/dist/src/semantic-private-authority-offers.js +3 -1
- package/dist/src/semantic-private-authority-offers.js.map +1 -1
- package/dist/src/semantic-tool-command-helpers.d.ts +6 -0
- package/dist/src/semantic-tool-command-helpers.js +199 -78
- package/dist/src/semantic-tool-command-helpers.js.map +1 -1
- package/dist/src/semantic-tool-descriptions.d.ts +2 -1
- package/dist/src/semantic-tool-descriptions.js +84 -35
- package/dist/src/semantic-tool-descriptions.js.map +1 -1
- package/dist/src/semantic-tool-list-projection.js +66 -2
- package/dist/src/semantic-tool-list-projection.js.map +1 -1
- package/dist/src/semantic-tool-presentation.js +76 -7
- package/dist/src/semantic-tool-presentation.js.map +1 -1
- package/dist/src/semantic-tool-runtime.js +129 -29
- package/dist/src/semantic-tool-runtime.js.map +1 -1
- package/dist/src/semantic-tool-schemas.d.ts +410 -27
- package/dist/src/semantic-tool-schemas.js +176 -88
- package/dist/src/semantic-tool-schemas.js.map +1 -1
- package/dist/src/terminal-action-contracts.js +10 -6
- package/dist/src/terminal-action-contracts.js.map +1 -1
- package/dist/src/terminal-command-cli-adapter.js +4 -4
- package/dist/src/terminal-command-cli-adapter.js.map +1 -1
- package/dist/src/terminal-command-dispatch-preparation.js +2 -1
- package/dist/src/terminal-command-dispatch-preparation.js.map +1 -1
- package/dist/src/terminal-list-cli-adapter.d.ts +1 -0
- package/dist/src/terminal-list-cli-adapter.js +6 -3
- package/dist/src/terminal-list-cli-adapter.js.map +1 -1
- package/dist/src/terminal-monitor-decision-policy.d.ts +1 -1
- package/dist/src/terminal-monitor-launch-plan.js +3 -2
- package/dist/src/terminal-monitor-launch-plan.js.map +1 -1
- package/dist/src/terminal-monitor-supervision-cli-adapter.js +2 -2
- package/dist/src/terminal-monitor-supervision-cli-adapter.js.map +1 -1
- package/dist/src/terminal-submission-retry-reconciliation.js +2 -2
- package/dist/src/terminal-submission-retry-reconciliation.js.map +1 -1
- package/dist/src/terminal-user-send-intent.d.ts +2 -0
- package/dist/src/terminal-user-send-intent.js +11 -3
- package/dist/src/terminal-user-send-intent.js.map +1 -1
- package/dist/src/terminal-watch-cli-adapter.js +4 -4
- package/dist/src/terminal-watch-cli-adapter.js.map +1 -1
- package/docs/architecture/current-architecture.md +313 -0
- package/docs/architecture/interactive-terminal-response.md +276 -0
- package/docs/architecture/issue-126-final-report.md +248 -0
- package/docs/architecture/orchestration-refactor-history.md +2987 -0
- package/docs/architecture/orchestration-refactor.md +21 -0
- package/docs/backend-task-recovery.md +98 -0
- package/docs/bidirectional-agent-protocol.md +260 -0
- package/docs/codex-cli-native-compatibility.md +246 -0
- package/docs/codex-desktop-compatibility.md +414 -0
- package/docs/openclaw-operations.md +281 -0
- package/docs/openclaw-session-turn-delivery-requirement.md +45 -0
- package/docs/operator-guide.md +572 -0
- package/docs/storage-and-logging.md +91 -0
- package/docs/test-performance-issue-108.md +80 -0
- package/docs/test-performance-issue-120.md +226 -0
- package/docs/testing.md +628 -0
- package/openclaw.plugin.json +8 -4
- package/package.json +6 -13
- package/templates/openclaw-skills/agent-knock-knock/SKILL.md +66 -15
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,46 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.14.1 - 2026-10-10
|
|
4
|
+
|
|
5
|
+
- Add bounded, redacted public progress to Codex CLI backend and Desktop conversation/task Status: the latest commentary and up to two action summaries share an 800-code-point, grapheme-safe budget. Keep exact Watch turn attribution, native timestamps and read failures explicit; List and terminal screen output are unchanged.
|
|
6
|
+
- Share a 720-minute default monitoring hard deadline across backend and terminal Send/Watch entry points and service fallbacks. Backend Renew uses the hard-timeout configuration; terminal managed Renew retains its independent inactivity window. Existing deadlines, replay identities and accepted callback records are unchanged.
|
|
7
|
+
|
|
8
|
+
### Validation boundaries
|
|
9
|
+
|
|
10
|
+
- Verified public progress during an active task, 720-minute Send monitoring, a single local completion acknowledgement, and idempotent Send on macOS with Codex CLI and shared app-server both at 0.162.1. This does not establish a new numeric minimum or claim all native operations were repeated.
|
|
11
|
+
- Desktop behavior is covered by regression tests; Desktop live verification was explicitly skipped for this release. The existing exact supported app/build requirement remains unchanged.
|
|
12
|
+
|
|
13
|
+
## 0.14.0 - 2026-10-10
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- Control loaded Codex CLI conversations through their shared app-server without tmux, Herdr, or terminal input. Add native discovery, exact task send/Watch, durable completion and interaction callbacks, command/file approvals, blocking and async answers, and per-thread permission settings.
|
|
18
|
+
- Discover Codex Desktop conversations alongside terminal sessions, with search, project filtering, pagination, and separate catalog and live-owner evidence. Keep unloaded and creator-unknown conversations discoverable without treating metadata as permission to send.
|
|
19
|
+
- Send tasks to an exact existing Desktop conversation through its original owner, record a durable send intent, and bind monitoring to the accepted native task. Repeated message IDs and uncertain submissions never automatically resend task text.
|
|
20
|
+
- Add Desktop Status and exact task Watch, with durable completion and manual-attention notifications. Monitoring retains its original native task when a later task starts; stopping a Watch leaves the Desktop task running.
|
|
21
|
+
- Add exact-task Recover, observation Renew, managed Close, and manual Retry Callback for direct Codex CLI and Desktop. Separate stopping observation from closing Send management, retain unresolved submission ownership until explicitly closed, and preserve callback identity and uncertain-outcome boundaries without terminal fallback.
|
|
22
|
+
- Add Desktop command/file approval decisions and blocking questionnaire responses through the original conversation owner, with exact native request and result evidence.
|
|
23
|
+
- Add typed responses for Desktop asynchronous questions in the exact active task, with durable response deduplication, native answer confirmation, and expiry of undelivered obsolete reminders.
|
|
24
|
+
- Add per-conversation Desktop Read Only/Default/Full Access settings, explicit model/effort and Plan/default controls, and exact-task cancellation. Verify effective settings instead of treating acknowledgements as success; report the unavailable model catalog explicitly.
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
|
|
28
|
+
- Present unified `conversations[]` for Send, Status, and Watch, preferring a verified Codex backend and preserving eligible terminal fallback. Coalesce only exact native identity matches, keep task/interaction routes fixed, and never replay an uncertain mutation through another transport. Preserve raw CLI provider arrays for diagnostics and existing clients.
|
|
29
|
+
- Apply backend-first capability selection across Codex conversation commands, including permission reads/updates and native interaction actions. Allow targeted Status and other eligible operations to resolve an idle terminal through the existing exact native status inspection; preserve no-input List, bound task/interaction identities, and terminal-only lifecycle semantics.
|
|
30
|
+
- Default Desktop List to persisted expanded sidebar membership, with explicit `desktop_view: "history"` / `--desktop-view history` for the broader historical catalog. Keep unconnected rows visible and report unsupported layouts without falling back to history; live counts describe the current page only.
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
|
|
34
|
+
- Recover missed Codex Desktop asynchronous-question notifications by reading questions from native messages as well as pending requests.
|
|
35
|
+
- Preserve exact legacy terminal identifiers and explicit managed-only operations through conversation routing. Keep routing reservations independent of managed Store writer locks so eligible physical Send retains its existing compatibility and lock ordering.
|
|
36
|
+
|
|
37
|
+
### Compatibility
|
|
38
|
+
|
|
39
|
+
- Review direct CLI operations on macOS with Codex CLI `0.160.0` and shared app-server `0.162.0`. The local CLI and daemon installation observed at `0.162.1` on 2026-10-10 is not a new end-to-end verification or a numeric minimum; runtime identity and protocol checks determine direct-control availability.
|
|
40
|
+
- Require the reviewed macOS Codex Desktop `26.1002.52244` build `13536` for native writes through its private IPC. This exact build is not a minimum-version promise. Loading inactive conversations and launching replacement CLI sessions remain unsupported.
|
|
41
|
+
- Preserve the existing tmux and Herdr adapters and their terminal-specific interaction controls.
|
|
42
|
+
- Keep Pi and DeepSeek Harness connector releases independent. Their current manifests still pin AKK `0.13.3`; releasing the core package does not upgrade those connector runtimes.
|
|
43
|
+
|
|
3
44
|
## 0.13.18 - 2026-10-04
|
|
4
45
|
|
|
5
46
|
- Adapt Codex 0.160.0 async-question Option-key hints while preserving exact versioned input checks and older keymaps.
|
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
# Contributing
|
|
2
|
+
|
|
3
|
+
Thanks for taking the time to improve Agent Knock Knock.
|
|
4
|
+
|
|
5
|
+
## Development Setup
|
|
6
|
+
|
|
7
|
+
Use Node.js 22.19 or newer; Node.js 24 is recommended. GitHub Actions runners are intentionally disabled during the current rapid-iteration phase, so pull requests must include the local verification results described below. The supported Node.js boundary remains part of release compatibility even though GitHub does not currently run a hosted matrix.
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm ci
|
|
11
|
+
npm run build
|
|
12
|
+
npm run test:fast
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
The fast tier is the only test tier for normal development, review, and local
|
|
16
|
+
installation, as required by [AGENTS.md](AGENTS.md). Do not run integration or
|
|
17
|
+
full suites merely to open a pull request. Full/release tests are reserved for
|
|
18
|
+
the immediate gate before an actual npm or ClawHub publication. See
|
|
19
|
+
[docs/testing.md](docs/testing.md) for the tier manifest and release workflow.
|
|
20
|
+
|
|
21
|
+
For local OpenClaw testing, link the plugin from this checkout:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
openclaw plugins install --link .
|
|
25
|
+
openclaw plugins enable agent-knock-knock
|
|
26
|
+
openclaw gateway restart
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Checks
|
|
30
|
+
|
|
31
|
+
Before opening a pull request, run:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
npm run typecheck
|
|
35
|
+
npm run test:fast
|
|
36
|
+
npm pack --dry-run
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
`npm run test:fast` includes the build and Skill consistency check. `npm test`
|
|
40
|
+
is an alias for `test:full` and belongs to release validation, not this
|
|
41
|
+
development loop. Build, type checking, architecture/evidence validators, and
|
|
42
|
+
non-test packaging checks do not authorize a broader test tier.
|
|
43
|
+
|
|
44
|
+
The pull request description is the verification record while hosted Actions
|
|
45
|
+
are disabled: include the local Node.js version, exact commands, pass counts,
|
|
46
|
+
and any intentionally skipped credentialed smoke. `package.json` currently has
|
|
47
|
+
no separate lint script, so use `git diff --check` as the whitespace/patch
|
|
48
|
+
format gate and report that fact explicitly.
|
|
49
|
+
|
|
50
|
+
Routine releases verify the current build-pinned OpenClaw host through
|
|
51
|
+
`npm run test:release`. Run the complete isolated host matrix periodically and
|
|
52
|
+
whenever a declared OpenClaw compatibility floor changes:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
npm run compat:openclaw
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
The complete matrix derives the supported Host, Plugin API, and build versions
|
|
59
|
+
from `package.json`, then verifies the adjacent failing API boundary. It uses
|
|
60
|
+
only temporary OpenClaw state and does not make credentialed coding-agent
|
|
61
|
+
turns.
|
|
62
|
+
|
|
63
|
+
If your change touches logging, callbacks, or trace output, also review the output for secrets and local-only data. Trace output must not expose agent thinking text, raw callback payloads, gateway tokens, API keys, passwords, or proxy credentials.
|
|
64
|
+
|
|
65
|
+
## Native Lifecycle Live-Smoke Diagnostic
|
|
66
|
+
|
|
67
|
+
This optional diagnostic runs a fresh real-agent check in addition to the
|
|
68
|
+
deterministic suite. The runner uses existing authenticated coding-agent
|
|
69
|
+
processes and can incur API cost. It never launches, upgrades, restarts, kills,
|
|
70
|
+
or arbitrarily selects a process, and ordinary `npm test` never invokes it.
|
|
71
|
+
During the current rapid-iteration phase, npm and ClawHub publishing do not
|
|
72
|
+
require this diagnostic or consume its evidence.
|
|
73
|
+
|
|
74
|
+
Prepare one supported Codex pane and one supported Claude Code pane in tmux.
|
|
75
|
+
Both must be idle with an empty composer and have no active Turn, approval,
|
|
76
|
+
callback, dispatch, or lifecycle transition. Record each exact target, tmux
|
|
77
|
+
pane PID, and running agent version:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
tmux list-panes -a -F '#{session_name}:#{window_index}.#{pane_index} #{pane_pid} #{pane_current_command}'
|
|
81
|
+
npm run build
|
|
82
|
+
node dist/src/cli.js list --terminal-debug
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Each starting native thread `A` must already be persisted by its agent as an
|
|
86
|
+
exact same-workspace resume candidate. In particular, a newly launched Codex
|
|
87
|
+
composer with no completed native turn is not a safe origin: `/clear` can erase
|
|
88
|
+
its only identity before Codex writes a resumable thread row and rollout. Seed
|
|
89
|
+
that pane with one harmless native turn, wait until it is idle, and verify the
|
|
90
|
+
thread is listed before running the diagnostic. The diagnostic's internal New preflight
|
|
91
|
+
rechecks unique Session ownership and a fresh candidate token before `/clear`.
|
|
92
|
+
Do not type in either selected pane while the matrix is running: AKK's locks
|
|
93
|
+
serialize AKK operations, but they cannot fence direct human tmux input.
|
|
94
|
+
|
|
95
|
+
Keep the evidence outside the repository. The worktree must be clean because
|
|
96
|
+
the result is bound to `git rev-parse HEAD` and the current `package.json`
|
|
97
|
+
version. The runner also fingerprints its compiled JavaScript before and after
|
|
98
|
+
the matrix and fails closed if it changes. Run the complete matrix with both
|
|
99
|
+
explicit opt-ins:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
AKK_RUN_LIVE_LIFECYCLE_SMOKE=1 npm run smoke:lifecycle -- \
|
|
103
|
+
--confirm-live \
|
|
104
|
+
--codex-target <session:window.pane> \
|
|
105
|
+
--codex-expected-pane-pid <pane-pid> \
|
|
106
|
+
--codex-expected-version <codex-version> \
|
|
107
|
+
--claude-target <session:window.pane> \
|
|
108
|
+
--claude-expected-pane-pid <pane-pid> \
|
|
109
|
+
--claude-expected-version <claude-version> \
|
|
110
|
+
--evidence </absolute/private/path/live-lifecycle-evidence.json>
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Omit all three `--claude-*` arguments for a Codex-only diagnostic run, or all
|
|
114
|
+
three `--codex-*` arguments for a Claude-only run. Complete matrix evidence
|
|
115
|
+
still requires both agents.
|
|
116
|
+
|
|
117
|
+
The runner reports one of three outcomes:
|
|
118
|
+
|
|
119
|
+
- `passed`: the exact pane completed `A → new B → one Send in B → resume A`
|
|
120
|
+
and finished idle on A with the same process and workspace.
|
|
121
|
+
- `failed`: a check failed with a proven outcome. Inspect the named pane and
|
|
122
|
+
evidence before deciding whether to run again.
|
|
123
|
+
- `uncertain`: AKK cannot prove whether submitted terminal input completed.
|
|
124
|
+
Do not rerun the lifecycle command. Inspect that exact pane, run
|
|
125
|
+
`node dist/src/cli.js list --terminal-debug`, and recover manually with only
|
|
126
|
+
the newly advertised exact action once the current native thread is known.
|
|
127
|
+
|
|
128
|
+
The persisted starting thread `A` may already have a managed AKK Session or
|
|
129
|
+
may be an unmanaged, verified native thread. Evidence records that distinction
|
|
130
|
+
explicitly.
|
|
131
|
+
For an unmanaged start, New has no source Session, creates `B` at binding
|
|
132
|
+
generation 1, and exact Resume materializes a new Session for `A` at generation
|
|
133
|
+
1. For a managed start, exact Resume returns to the same `A` Session and advances
|
|
134
|
+
its binding generation by exactly one. Neither lifecycle operation may create a
|
|
135
|
+
Turn in either path.
|
|
136
|
+
|
|
137
|
+
The JSON contains only allowlisted diagnostic facts and salted fingerprints. It
|
|
138
|
+
does not contain prompts, replies, transcripts, raw native/Session/Turn/
|
|
139
|
+
transition/binding IDs, callback payloads, or credentials. A non-passing run
|
|
140
|
+
still writes evidence for diagnosis, but it cannot pass local verification.
|
|
141
|
+
|
|
142
|
+
To validate passing evidence against the exact clean commit locally:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
release_version="$(node -p "require('./package.json').version")"
|
|
146
|
+
release_commit="$(git rev-parse HEAD)"
|
|
147
|
+
|
|
148
|
+
npm run smoke:lifecycle:attest -- \
|
|
149
|
+
--evidence </absolute/private/path/live-lifecycle-evidence.json> \
|
|
150
|
+
--expected-version "${release_version}" \
|
|
151
|
+
--expected-commit "${release_commit}" \
|
|
152
|
+
--require-matrix \
|
|
153
|
+
--max-age-hours 72
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
The verifier and attestation format remain available so a mandatory release
|
|
157
|
+
gate can be restored later without redesigning the lifecycle evidence model.
|
|
158
|
+
|
|
159
|
+
### Opt-in monitor fault injection
|
|
160
|
+
|
|
161
|
+
#93 adds a separate liveness check to the #88 diagnostic contract. Run it only
|
|
162
|
+
against a disposable, already managed Turn while the OpenClaw Gateway and its
|
|
163
|
+
AKK plugin service are running:
|
|
164
|
+
|
|
165
|
+
1. Start one real background Turn in an explicitly selected idle tmux pane and
|
|
166
|
+
retain its `state_path` and `event_log_path` from the send result.
|
|
167
|
+
2. From that Turn's event log, read the latest
|
|
168
|
+
`terminal_bridge_monitor_launch.pid`. Verify it is neither the tmux pane PID
|
|
169
|
+
nor the Codex/Claude process PID, then terminate only that monitor process.
|
|
170
|
+
3. Do not invoke AKK `status`, `list`, or `reconcile-monitors`. Let the native
|
|
171
|
+
Turn finish normally.
|
|
172
|
+
4. Within 30 seconds after durable completion, while the Store remains
|
|
173
|
+
writable, require evidence for `terminal_bridge_monitor_exit_observed`, a
|
|
174
|
+
`terminal_bridge_monitor_launch` whose reason is
|
|
175
|
+
`unexpected_exit_recovery`, and the replacement
|
|
176
|
+
`terminal_bridge_monitor_started`. The detached child and supervisor append
|
|
177
|
+
their records independently, so do not require those diagnostic records to
|
|
178
|
+
have a total ordering. Require exactly one
|
|
179
|
+
`terminal_bridge_completion_detected`, exactly one
|
|
180
|
+
`terminal_bridge_completion_claimed`, and one immutable `done` callback or
|
|
181
|
+
outbox entry.
|
|
182
|
+
5. Verify the replacement kept the same Session, Turn, terminal binding ID and
|
|
183
|
+
binding generation. A changed binding must fence the old monitor instead of
|
|
184
|
+
completing the Turn.
|
|
185
|
+
|
|
186
|
+
This scenario deliberately kills only AKK's detached monitor. It does not
|
|
187
|
+
weaken the lifecycle runner's promise never to launch, restart, upgrade, or
|
|
188
|
+
kill a coding-agent process. Store-lock fault injection is deterministic in the
|
|
189
|
+
test suite: holding `.akk-writer.lock` beyond ten seconds must produce a
|
|
190
|
+
deferred diagnostic, resume after release, and never be reported as binding
|
|
191
|
+
supersession.
|
|
192
|
+
|
|
193
|
+
## Adding a Terminal Agent Adapter
|
|
194
|
+
|
|
195
|
+
- Implement the `TerminalAgentAdapter` interface defined in `src/terminal-agent-adapter.ts`, including process classification, screen parsing, declared capabilities, ordered approval keys, ordered cancellation keys, and any screen or durable completion detection.
|
|
196
|
+
- Add the complete adapter once to `productionTerminalAgentAdapters` in `src/terminal-agent-registry.ts`. Unsupported capabilities must stay disabled so the bridge fails closed.
|
|
197
|
+
- Keep tmux discovery, capture, and input in `TerminalControlProvider`; agent-specific prompt and completion parsing belongs in the adapter.
|
|
198
|
+
- Add adapter and bridge tests covering discovery, agent-aware IDs, status, send, cancel, approval revalidation and key order, monitoring, completion, and disabled capabilities. Keep legacy `terminal:tmux:<target>:<pid>` IDs working as Codex.
|
|
199
|
+
|
|
200
|
+
## Pull Requests
|
|
201
|
+
|
|
202
|
+
- Keep changes focused on one behavior or feature.
|
|
203
|
+
- Include tests for CLI behavior, protocol changes, callback delivery, or trace parsing.
|
|
204
|
+
- Update `README.md` or `CHANGELOG.md` when user-visible behavior changes.
|
|
205
|
+
- Do not commit `dist/`, `node_modules/`, runtime logs, local OpenClaw state, or `.env` files.
|
|
206
|
+
- Complete the pull request checklist and attach local typecheck, full test, package, and compatibility results. When hosted Actions are re-enabled, the Node.js 22 and 24 jobs become required again.
|
|
207
|
+
|
|
208
|
+
For installation and usage help, see [SUPPORT.md](SUPPORT.md).
|
|
209
|
+
|
|
210
|
+
## Security Reports
|
|
211
|
+
|
|
212
|
+
Do not report vulnerabilities through public issues. See `SECURITY.md`.
|
package/README.md
CHANGED
|
@@ -2,204 +2,144 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/@scotthuang/agent-knock-knock)
|
|
4
4
|
[](https://nodejs.org/)
|
|
5
|
-
[](
|
|
5
|
+
[](LICENSE)
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
**Let your agent orchestrate the coding conversations you already use.**
|
|
8
|
+
AKK lets a controller such as OpenClaw discover your conversations, send tasks,
|
|
9
|
+
and receive completion or question notifications while you stay in chat.
|
|
8
10
|
|
|
9
|
-
|
|
11
|
+
**Codex CLI shared-backend connections and Codex Desktop work without tmux or
|
|
12
|
+
Herdr.** AKK controls the original conversation, so you see the same work in
|
|
13
|
+
Codex. Claude Code and applicable Codex terminal workflows use tmux or Herdr.
|
|
14
|
+
AKK does not launch a hidden replacement agent.
|
|
10
15
|
|
|
11
|
-
|
|
16
|
+
AKK 0.14.0 introduces Codex CLI shared-backend control, Codex Desktop support,
|
|
17
|
+
unified conversation routing, and exact-task recovery. **0.14.1 adds bounded
|
|
18
|
+
public progress in Status and shared 12-hour monitoring defaults.** See the
|
|
19
|
+
[release notes](CHANGELOG.md#0141---2026-10-10) for changes and validation limits.
|
|
12
20
|
|
|
13
|
-
##
|
|
21
|
+
## What you can do
|
|
14
22
|
|
|
15
|
-
|
|
23
|
+
- **Find and select conversations** by project and title. Desktop also lists
|
|
24
|
+
saved sidebar entries that are not connected; those rows cannot receive tasks.
|
|
25
|
+
- **Send and follow an exact task**, or Watch work you started yourself.
|
|
26
|
+
Results and attention notifications return to the initiating controller.
|
|
27
|
+
- **Answer supported questions, approve requests, and set permissions** through
|
|
28
|
+
the selected provider's advertised actions. Desktop also supports explicit
|
|
29
|
+
model settings and exact task cancellation.
|
|
30
|
+
- **Recover monitoring and callback failures** without resending the task.
|
|
31
|
+
[Backend Recovery](docs/backend-task-recovery.md) distinguishes Recover,
|
|
32
|
+
Renew, Close, Unwatch, and Retry Callback.
|
|
16
33
|
|
|
17
|
-
|
|
18
|
-
openclaw plugins install clawhub:@scotthuang/agent-knock-knock
|
|
19
|
-
openclaw gateway restart
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
Start a shared coding-agent terminal in your project:
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
cd /absolute/path/to/project
|
|
26
|
-
tmux new-session -s akk-work -c "$(pwd -P)" codex
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
Use `claude` instead of `codex` if preferred. Herdr users can follow the [Herdr quick start](docs/quickstart-herdr.md).
|
|
30
|
-
|
|
31
|
-
In OpenClaw, first send:
|
|
32
|
-
|
|
33
|
-
```text
|
|
34
|
-
/akk doctor
|
|
35
|
-
```
|
|
34
|
+
## Quick start with OpenClaw
|
|
36
35
|
|
|
37
|
-
|
|
36
|
+
Use Node.js `22.19.0`+, OpenClaw `2026.6.5`+, and an authenticated coding agent
|
|
37
|
+
under the same OS user as AKK.
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
/akk inspect this repository and summarize it
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
That is the complete first-task flow. For terminal setup and multiple panes, see the [tmux quick start](docs/quickstart-tmux.md). Direct `/akk ...` commands need no OpenClaw tool-policy changes.
|
|
44
|
-
|
|
45
|
-
## Install for Pi
|
|
39
|
+
### 1. Install AKK
|
|
46
40
|
|
|
47
|
-
|
|
41
|
+
Use ClawHub for the OpenClaw plugin, including the 0.14 backend and Desktop
|
|
42
|
+
features:
|
|
48
43
|
|
|
49
44
|
```bash
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
pi
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
Pi should show `AKK ready`. With Codex or Claude Code already running in tmux or Herdr, enter `/akk list`. The connector provides `/akk`, the complete capability-handshake-verified semantic tool catalog, the bundled `agent-knock-knock` skill, callbacks to the initiating Pi session, and native approval dialogs. See the [Pi connector guide](connectors/pi/README.md).
|
|
56
|
-
|
|
57
|
-
## Install for DeepSeek Harness
|
|
58
|
-
|
|
59
|
-
The connector supports DeepSeek Harness Web `0.1.1-rc.2`, `0.1.2-alpha.1`, and
|
|
60
|
-
`0.1.5-rc.2`:
|
|
61
|
-
|
|
62
|
-
```bash
|
|
63
|
-
dsh plugin --profile web add @scotthuang/agent-knock-knock-deepseek-harness@next
|
|
64
|
-
dsh web
|
|
45
|
+
openclaw plugins install clawhub:@scotthuang/agent-knock-knock
|
|
46
|
+
openclaw gateway restart
|
|
65
47
|
```
|
|
66
48
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
49
|
+
The [installation guide](docs/openclaw-operations.md#choose-one-installation-path)
|
|
50
|
+
also covers npm. Building a reviewed checkout is optional; see
|
|
51
|
+
[local development installation](docs/openclaw-operations.md#local-development-build).
|
|
52
|
+
Choose one installation path per OpenClaw profile.
|
|
70
53
|
|
|
71
|
-
|
|
54
|
+
### 2. Make your conversation available
|
|
72
55
|
|
|
73
|
-
|
|
56
|
+
- **Codex CLI direct:** keep a main CLI conversation connected to a reachable
|
|
57
|
+
local shared backend. No terminal container is required. An embedded backend
|
|
58
|
+
or unloaded history is not a direct-control target; see the
|
|
59
|
+
[CLI guide](docs/codex-cli-native-compatibility.md).
|
|
60
|
+
- **Codex Desktop:** open the intended local conversation in the reviewed app
|
|
61
|
+
build. A saved conversation with no verified live owner must be opened in
|
|
62
|
+
Desktop before AKK can send to it. See the [Desktop guide](docs/codex-desktop-compatibility.md).
|
|
63
|
+
- **Claude Code or Codex terminal control:** follow the [tmux](docs/quickstart-tmux.md)
|
|
64
|
+
or [Herdr](docs/quickstart-herdr.md) quick start, including `/akk doctor`.
|
|
74
65
|
|
|
75
|
-
|
|
66
|
+
### 3. List, select, and send
|
|
76
67
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
Codex CLI 0.158.0/0.159.0/0.159.2/0.159.3/0.160.0 supports exact paginated task Watches for ordinary terminal
|
|
80
|
-
Send, native question responses, and durable completion callbacks. The adapter
|
|
81
|
-
checks the foreground thread and server version before attaching; uncertain
|
|
82
|
-
answers are never automatically replayed. See the [0.158.0/0.159.0/0.159.2/0.159.3/0.160.0 compatibility
|
|
83
|
-
review](docs/codex-0.160.0-compatibility.md) for managed-session and already-open
|
|
84
|
-
question boundaries. Codex 0.157.x retains its [partial compatibility](docs/codex-0.157.1-compatibility.md).
|
|
85
|
-
|
|
86
|
-
- **Watch without babysitting.** `/akk watch <terminal>` observes work already in progress and sends a callback when it finishes, needs approval, or becomes blocked. You can leave the terminal and continue from your phone or another chat client.
|
|
87
|
-
- **Send without typing in a tiny remote console.** `/akk <selector>: <message>` sends your natural-language instruction to the selected live coding-agent terminal. An explicit user Send has priority over stale AKK management state.
|
|
88
|
-
- **Identify an ambiguous Codex foreground explicitly.** When several rollout files or a recent `/clear` prevent durable attribution, an advertised foreground-identification action can inspect one exact idle pane without guessing which rollout is current.
|
|
89
|
-
- **Set Codex permissions before a task.** `/akk permissions <exact-terminal-id>` reads the current setting and native choices; `/akk set-permissions <exact-terminal-id> <advertised-mode-id>` applies your selected mode to that idle session and verifies it before Send. Full Access works like the other options; AKK handles its native confirmation automatically without an extra user prompt. See [Codex permissions](docs/codex-permissions.md).
|
|
90
|
-
- **Switch models through the native catalog.** `/akk models <exact-terminal-id>` lists the choices currently offered by one exact physical Codex or Claude Code pane; a Codex rollout/native-thread attribution is not required, so this also works before the first rollout materializes. `/akk set-model ...` consumes one exact advertised model/reasoning-effort tuple without accepting raw slash commands, keys, or menu indexes. Codex synchronizes the model and ordinary efforts through `max` to the current and future-session defaults; its `ultra` effort is current-session-only, and the native UI does not expose the exact non-Ultra effort chosen for future sessions, so AKK omits that unobservable field. Claude Code changes only the current session.
|
|
91
|
-
- **Continue or clear only a proven model-control residue.** If a failed profiled Codex 0.154.0/0.155.1 model-control attempt leaves an exact `/model` completion surface or bare `/model` Composer, a fresh List may advertise both `/akk models <exact-terminal-id>` and `/akk repair-model-control <exact-terminal-id>`. Models uses a separate residual-bound authority to continue that exact native slash command into read-only catalog discovery without retyping it. If the exact native picker is already open, List marks the pane non-idle and advertises repair only. Repair remains the cleanup-only escape hatch, never presses Enter, and must prove an empty Composer.
|
|
92
|
-
- **Inspect and recover.** `/akk status <turn-or-watch>` shows current state when a callback is delayed. Durable callback records and Watches provide a recovery path after transient Host failures.
|
|
93
|
-
- **Approve deliberately.** AKK can surface Codex or Claude Code permission requests and submit an explicit human decision. It preserves the coding agent's existing permission mode.
|
|
94
|
-
- **Hand control back and forth.** Attach to the same tmux or Herdr pane whenever you want. AKK does not create a parallel hidden conversation.
|
|
95
|
-
|
|
96
|
-
The common workflow is:
|
|
68
|
+
In your OpenClaw chat, send:
|
|
97
69
|
|
|
98
70
|
```text
|
|
99
71
|
/akk list
|
|
100
|
-
/akk watch <exact-terminal-id>
|
|
101
|
-
/akk models <exact-terminal-id>
|
|
102
|
-
/akk set-model <exact-terminal-id> <advertised-model-id> <advertised-reasoning-effort>
|
|
103
|
-
/akk codex: run the tests and explain any failures
|
|
104
|
-
/akk status <turn-id-or-watch-id>
|
|
105
72
|
```
|
|
106
73
|
|
|
107
|
-
|
|
74
|
+
Then send a separate message asking OpenClaw to use the listed conversation:
|
|
108
75
|
|
|
109
76
|
```text
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
/akk models <exact-terminal-id>
|
|
113
|
-
/akk set-model <exact-terminal-id> <advertised-model-id> <advertised-reasoning-effort>
|
|
77
|
+
Use AKK to send “Summarize this project's test setup” to the Codex conversation
|
|
78
|
+
for my-project, and tell me when that task finishes.
|
|
114
79
|
```
|
|
115
80
|
|
|
116
|
-
|
|
81
|
+
If several rows match, select the exact listed conversation. The controller
|
|
82
|
+
uses its returned ID and available Send action; you do not need to choose a
|
|
83
|
+
transport. Enable [natural-language tool routing](docs/openclaw-operations.md#optional-natural-language-routing)
|
|
84
|
+
if your OpenClaw tool policy restricts AKK. Direct `/akk ...` commands do not
|
|
85
|
+
require that policy change.
|
|
117
86
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
│
|
|
123
|
-
AKK Host adapter
|
|
124
|
-
│
|
|
125
|
-
Session · Turn · Watch · Callback
|
|
126
|
-
│
|
|
127
|
-
tmux / Herdr
|
|
128
|
-
│
|
|
129
|
-
Codex / Claude Code
|
|
130
|
-
```
|
|
87
|
+
Keep the returned task/Watch ID to query `/akk status <id>` later. To observe
|
|
88
|
+
work already running, ask OpenClaw to Watch that listed conversation. A
|
|
89
|
+
callback accepted by OpenClaw does not itself prove delivery to WeChat or
|
|
90
|
+
another downstream channel.
|
|
131
91
|
|
|
132
|
-
|
|
92
|
+
## Compatibility at a glance
|
|
133
93
|
|
|
134
|
-
|
|
135
|
-
versioned, secretless Host Adapter capability handshake. Startup verifies the
|
|
136
|
-
ordered semantic tool registration and the bundled Skill against catalog and
|
|
137
|
-
Skill SHA-256 digests; an older, missing, or drifted handshake fails closed
|
|
138
|
-
instead of mounting a partial tool surface. Connector package versions remain
|
|
139
|
-
independent of one another.
|
|
94
|
+
These are distinct provider boundaries, not a blanket minimum Codex version.
|
|
140
95
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
AKK is local-first: there is no hosted control plane or telemetry. It stores only the local state needed for routing, lifecycle recovery, callback delivery, and idempotency.
|
|
144
|
-
|
|
145
|
-
## Compatibility
|
|
146
|
-
|
|
147
|
-
| Component | Supported boundary |
|
|
96
|
+
| Connection | Requirements and verified scope |
|
|
148
97
|
| --- | --- |
|
|
149
|
-
|
|
|
150
|
-
|
|
|
151
|
-
|
|
|
152
|
-
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
98
|
+
| **Codex CLI direct** | Loaded main CLI thread on a compatible local shared backend. Live-tested on **macOS: CLI 0.160.0 + app-server 0.162.0**. Runtime identity/protocol checks determine availability; no numeric minimum has been established. |
|
|
99
|
+
| **Codex Desktop** | Verified **macOS app 26.1002.52244, build 13536**, bundle `com.openai.codex` at `/Applications/ChatGPT.app`. Native writes require that **exact version/build** and a verified live owner. |
|
|
100
|
+
| **Codex / Claude Code terminals** | tmux or local Herdr **0.8.0 / protocol 19**. Reviewed Codex TUI profiles include **0.160.0**; Claude Code **2.1.285** was verified on macOS arm64. Operations depend on the agent version and current UI. |
|
|
101
|
+
| **OpenClaw / runtime** | OpenClaw **2026.6.5+**, plugin API/Gateway **2026.5.12+**; Node.js **22.19.0+**. Core terminal support targets macOS/Linux; the Desktop profile is macOS-only. |
|
|
102
|
+
|
|
103
|
+
Additional targeted verification on 2026-10-10 used **CLI 0.162.1 + backend
|
|
104
|
+
0.162.1** for public Status progress, 12-hour Send monitoring and an isolated
|
|
105
|
+
completion callback. Other native capabilities were not repeated in that run.
|
|
106
|
+
Frontend and backend versions need not match. The [CLI evidence](docs/codex-cli-native-compatibility.md#compatibility-and-limits)
|
|
107
|
+
and [Desktop profile](docs/codex-desktop-compatibility.md#version-and-platform-evidence)
|
|
108
|
+
separate current observations, tested operations, and unsupported cases.
|
|
109
|
+
|
|
110
|
+
Direct CLI currently lacks model control, cancellation, and native new/resume
|
|
111
|
+
operations. Some can use a verified terminal capability; others, including
|
|
112
|
+
paginated Codex new/resume, remain unsupported. Desktop has no terminal fallback
|
|
113
|
+
and cannot create or cold-load conversations. Backend busy/blocked states or
|
|
114
|
+
uncertain execution never trigger a retry through another transport. See
|
|
115
|
+
[routing and operation limits](docs/codex-cli-native-compatibility.md#automatic-conversation-routing-2026-10-10).
|
|
116
|
+
|
|
117
|
+
## Other controller Hosts
|
|
118
|
+
|
|
119
|
+
[Pi](connectors/pi/README.md) and [DeepSeek Harness](connectors/deepseek-harness/README.md)
|
|
120
|
+
have independent connector packages and installation guides. Their current
|
|
121
|
+
package manifests pin AKK **0.13.3**; their published capabilities must not be
|
|
122
|
+
inferred from this 0.14 README. See each guide for its reviewed
|
|
123
|
+
Host versions, callbacks, and upgrade procedure.
|
|
157
124
|
|
|
158
125
|
## Documentation
|
|
159
126
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
| Guide | Use it for |
|
|
127
|
+
| Guide | What it covers |
|
|
163
128
|
| --- | --- |
|
|
164
|
-
| [
|
|
165
|
-
| [
|
|
166
|
-
| [
|
|
167
|
-
| [
|
|
168
|
-
| [Operator guide](docs/operator-guide.md) |
|
|
169
|
-
| [OpenClaw operations](docs/openclaw-operations.md) |
|
|
170
|
-
| [
|
|
171
|
-
| [
|
|
172
|
-
| [Storage and logging](docs/storage-and-logging.md) |
|
|
173
|
-
| [Testing](docs/testing.md)
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
npm install -g @scotthuang/agent-knock-knock
|
|
182
|
-
agent-knock-knock install-openclaw --verify
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
ClawHub remains the recommended OpenClaw path. Do not install both variants into the same OpenClaw profile.
|
|
186
|
-
|
|
187
|
-
To build the repository locally:
|
|
188
|
-
|
|
189
|
-
```bash
|
|
190
|
-
npm install
|
|
191
|
-
npm run build
|
|
192
|
-
npm run test:fast
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
Connector development uses `npm run pi:build` from the repository root, or `cd connectors/pi && npm run build`; DeepSeek Harness has the matching `npm run deepseek:build` script.
|
|
196
|
-
|
|
197
|
-
## Security and Privacy
|
|
198
|
-
|
|
199
|
-
AKK controls terminals, so treat installation as privileged local automation. Use an unprivileged OS account, restrict tmux and Herdr sockets, keep the state directory private, and review approval prompts before allowing input. Ordinary AKK Send does not change agent permissions. The explicit Codex permission tool applies only the user-selected native mode; model-facing tools never receive terminal-control tokens, callback credentials, Composer text, or approval fingerprints.
|
|
200
|
-
|
|
201
|
-
Report vulnerabilities privately using [GitHub Security Advisories](https://github.com/scotthuang/agent-knock-knock/security/advisories/new). Please do not include secrets, private terminal output, or credentials in a public issue.
|
|
202
|
-
|
|
203
|
-
## License
|
|
204
|
-
|
|
205
|
-
[MIT](LICENSE)
|
|
129
|
+
| [CLI direct control](docs/codex-cli-native-compatibility.md) | Discovery, sending, Watch, interactions, routing, and version evidence |
|
|
130
|
+
| [Codex Desktop](docs/codex-desktop-compatibility.md) | Sidebar discovery, live-owner requirements, native controls, and tested build |
|
|
131
|
+
| [Backend Recovery](docs/backend-task-recovery.md) | Exact-task recovery, renewal, Close versus Unwatch, and callback retry |
|
|
132
|
+
| [tmux](docs/quickstart-tmux.md) · [Herdr](docs/quickstart-herdr.md) | Terminal setup and the first task |
|
|
133
|
+
| [Operator guide](docs/operator-guide.md) | Command reference, terminal models/lifecycle, identity, and advanced controls |
|
|
134
|
+
| [OpenClaw operations](docs/openclaw-operations.md) | Installation, tool policy, configuration, and troubleshooting |
|
|
135
|
+
| [Codex permissions](docs/codex-permissions.md) | Terminal permission choices and verification |
|
|
136
|
+
| [Host Bridge](docs/host-bridge-profiles.md) | Connect another controller through MCP/stdio and a Host Profile |
|
|
137
|
+
| [Storage and logging](docs/storage-and-logging.md) | Local state, privacy, logs, and protocol migration |
|
|
138
|
+
| [Testing](docs/testing.md) · [Contributing](CONTRIBUTING.md) | Development checks and contribution workflow |
|
|
139
|
+
|
|
140
|
+
AKK runs locally, with no hosted control plane or telemetry. Send preserves the
|
|
141
|
+
agent's permissions; explicit settings and approval actions apply the user's
|
|
142
|
+
choice. Keep local control sockets and AKK state private. Report vulnerabilities
|
|
143
|
+
through [GitHub Security Advisories](https://github.com/scotthuang/agent-knock-knock/security/advisories/new).
|
|
144
|
+
|
|
145
|
+
[MIT license](LICENSE).
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Agent Knock Knock contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|