@scotthuang/agent-knock-knock 0.11.6 → 0.12.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 +30 -0
- package/README.md +21 -15
- package/dist/src/cli-core.d.ts +48 -0
- package/dist/src/cli-core.js +20089 -0
- package/dist/src/cli-core.js.map +1 -0
- package/dist/src/cli.js +12 -19719
- package/dist/src/cli.js.map +1 -1
- package/dist/src/doctor-capabilities.d.ts +10 -2
- package/dist/src/doctor-capabilities.js +48 -7
- package/dist/src/doctor-capabilities.js.map +1 -1
- package/dist/src/herdr-terminal-control-provider.d.ts +115 -0
- package/dist/src/herdr-terminal-control-provider.js +961 -0
- package/dist/src/herdr-terminal-control-provider.js.map +1 -0
- package/dist/src/managed-session.d.ts +15 -0
- package/dist/src/managed-session.js +142 -15
- package/dist/src/managed-session.js.map +1 -1
- package/dist/src/native-thread-resume-snapshot.d.ts +13 -3
- package/dist/src/native-thread-resume-snapshot.js +105 -16
- package/dist/src/native-thread-resume-snapshot.js.map +1 -1
- package/dist/src/openclaw-plugin-helpers.js +4 -4
- package/dist/src/openclaw-plugin-helpers.js.map +1 -1
- package/dist/src/openclaw-plugin.js +28 -26
- package/dist/src/openclaw-plugin.js.map +1 -1
- package/dist/src/session-store.js +5 -0
- package/dist/src/session-store.js.map +1 -1
- package/dist/src/terminal-agent-adapter.d.ts +5 -16
- package/dist/src/terminal-agent-adapter.js +10 -6
- package/dist/src/terminal-agent-adapter.js.map +1 -1
- package/dist/src/terminal-agent-bridge.d.ts +11 -1
- package/dist/src/terminal-agent-bridge.js +199 -86
- package/dist/src/terminal-agent-bridge.js.map +1 -1
- package/dist/src/terminal-control-provider.d.ts +60 -21
- package/dist/src/terminal-control-provider.js +452 -30
- package/dist/src/terminal-control-provider.js.map +1 -1
- package/dist/src/terminal-control-ref.d.ts +141 -0
- package/dist/src/terminal-control-ref.js +557 -0
- package/dist/src/terminal-control-ref.js.map +1 -0
- package/docs/quickstart-herdr.md +37 -0
- package/openclaw.plugin.json +2 -2
- package/package.json +4 -2
- package/templates/openclaw-skills/agent-knock-knock/SKILL.md +17 -17
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export type DoctorMode = "tmux";
|
|
2
2
|
export type DoctorReadiness = "ready" | "partially_ready" | "not_ready";
|
|
3
|
-
export type DoctorProbeCommand = "openclaw" | "tmux" | "codex" | "claude";
|
|
3
|
+
export type DoctorProbeCommand = "openclaw" | "tmux" | "herdr" | "codex" | "claude";
|
|
4
4
|
export type DoctorProbeStatus = "ok" | "not_found" | "not_executable" | "version_failed" | "timeout" | "malformed_output";
|
|
5
5
|
export interface DoctorCommandCheck {
|
|
6
6
|
command: string;
|
|
@@ -42,13 +42,21 @@ interface DoctorModeCapability {
|
|
|
42
42
|
interface DoctorTmuxCapability extends DoctorModeCapability {
|
|
43
43
|
recommended: true;
|
|
44
44
|
}
|
|
45
|
+
interface DoctorHerdrCapability extends DoctorModeCapability {
|
|
46
|
+
version_supported: boolean;
|
|
47
|
+
required_version: typeof DOCTOR_SUPPORTED_HERDR_VERSION;
|
|
48
|
+
}
|
|
45
49
|
export interface DoctorCapabilitySummary {
|
|
46
50
|
coreOk: boolean;
|
|
47
51
|
transportOk: boolean;
|
|
52
|
+
available_transports: Array<"tmux" | "herdr">;
|
|
53
|
+
/** Retained for compatibility with existing doctor consumers. */
|
|
48
54
|
mode: DoctorMode;
|
|
49
55
|
readiness: DoctorReadiness;
|
|
50
56
|
tmux: DoctorTmuxCapability;
|
|
57
|
+
herdr: DoctorHerdrCapability;
|
|
51
58
|
}
|
|
59
|
+
export declare const DOCTOR_SUPPORTED_HERDR_VERSION: "0.8.0";
|
|
52
60
|
export declare const DOCTOR_PROBE_COMMANDS: readonly DoctorProbeCommand[];
|
|
53
61
|
/**
|
|
54
62
|
* Run a bounded, non-interactive version probe for one doctor dependency.
|
|
@@ -58,7 +66,7 @@ export declare const DOCTOR_PROBE_COMMANDS: readonly DoctorProbeCommand[];
|
|
|
58
66
|
*/
|
|
59
67
|
export declare function probeDoctorCommand(command: DoctorProbeCommand, options?: DoctorProbeOptions): DoctorCommandProbe;
|
|
60
68
|
/**
|
|
61
|
-
* Probe every external command used by the
|
|
69
|
+
* Probe every external command used by the supported terminal transports.
|
|
62
70
|
*/
|
|
63
71
|
export declare function runDoctorCapabilityProbes(options?: DoctorProbeOptions): DoctorCommandProbe[];
|
|
64
72
|
export declare function evaluateDoctorCapabilities(checks: readonly DoctorCommandCheck[]): DoctorCapabilitySummary;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { spawnSync } from "node:child_process";
|
|
2
|
+
export const DOCTOR_SUPPORTED_HERDR_VERSION = "0.8.0";
|
|
2
3
|
const DEFAULT_PROBE_TIMEOUT_MS = 3_000;
|
|
3
4
|
const MAX_PROBE_TIMEOUT_MS = 30_000;
|
|
4
5
|
const MAX_PROBE_BUFFER_BYTES = 64 * 1024;
|
|
@@ -6,12 +7,14 @@ const MAX_REPORTED_OUTPUT_CHARS = 2_000;
|
|
|
6
7
|
const PROBE_ARGUMENTS = {
|
|
7
8
|
openclaw: ["--version"],
|
|
8
9
|
tmux: ["-V"],
|
|
10
|
+
herdr: ["--version"],
|
|
9
11
|
codex: ["--version"],
|
|
10
12
|
claude: ["--version"]
|
|
11
13
|
};
|
|
12
14
|
const DEFAULT_PROBE_EXECUTABLES = {
|
|
13
15
|
openclaw: "openclaw",
|
|
14
16
|
tmux: "tmux",
|
|
17
|
+
herdr: "herdr",
|
|
15
18
|
codex: "codex",
|
|
16
19
|
claude: "claude"
|
|
17
20
|
};
|
|
@@ -103,7 +106,7 @@ export function probeDoctorCommand(command, options = {}) {
|
|
|
103
106
|
});
|
|
104
107
|
}
|
|
105
108
|
/**
|
|
106
|
-
* Probe every external command used by the
|
|
109
|
+
* Probe every external command used by the supported terminal transports.
|
|
107
110
|
*/
|
|
108
111
|
export function runDoctorCapabilityProbes(options = {}) {
|
|
109
112
|
return DOCTOR_PROBE_COMMANDS.map((command) => probeDoctorCommand(command, options));
|
|
@@ -121,25 +124,58 @@ export function evaluateDoctorCapabilities(checks) {
|
|
|
121
124
|
];
|
|
122
125
|
const availableAgents = ["codex", "claude"]
|
|
123
126
|
.filter((agent) => isUsable(checkByCommand.get(agent)));
|
|
127
|
+
const agentsOk = availableAgents.length > 0;
|
|
124
128
|
const tmuxTransportOk = isUsable(checkByCommand.get("tmux"));
|
|
129
|
+
const herdrCheck = checkByCommand.get("herdr");
|
|
130
|
+
const herdrExecutableOk = isUsable(herdrCheck);
|
|
131
|
+
const herdrVersionSupported = herdrExecutableOk && herdrCheck?.version_supported === true;
|
|
125
132
|
const tmux = {
|
|
126
|
-
available: tmuxTransportOk &&
|
|
127
|
-
status: readinessFromParts([coreOk, tmuxTransportOk,
|
|
133
|
+
available: tmuxTransportOk && agentsOk,
|
|
134
|
+
status: readinessFromParts([coreOk, tmuxTransportOk, agentsOk]),
|
|
128
135
|
recommended: true,
|
|
129
136
|
agents: availableAgents,
|
|
130
137
|
requires: ["node", "openclaw", "tmux", "codex or claude"],
|
|
131
138
|
missing: [
|
|
132
139
|
...missingCore,
|
|
133
140
|
...(!tmuxTransportOk ? ["tmux"] : []),
|
|
134
|
-
...(
|
|
141
|
+
...(!agentsOk ? ["codex or claude"] : [])
|
|
135
142
|
]
|
|
136
143
|
};
|
|
144
|
+
const herdr = {
|
|
145
|
+
available: herdrVersionSupported && agentsOk,
|
|
146
|
+
status: readinessFromParts([coreOk, herdrVersionSupported, agentsOk]),
|
|
147
|
+
version_supported: herdrVersionSupported,
|
|
148
|
+
required_version: DOCTOR_SUPPORTED_HERDR_VERSION,
|
|
149
|
+
agents: availableAgents,
|
|
150
|
+
requires: [
|
|
151
|
+
"node",
|
|
152
|
+
"openclaw",
|
|
153
|
+
`herdr ${DOCTOR_SUPPORTED_HERDR_VERSION}`,
|
|
154
|
+
"codex or claude"
|
|
155
|
+
],
|
|
156
|
+
missing: [
|
|
157
|
+
...missingCore,
|
|
158
|
+
...(!herdrExecutableOk
|
|
159
|
+
? ["herdr"]
|
|
160
|
+
: !herdrVersionSupported
|
|
161
|
+
? [`herdr ${DOCTOR_SUPPORTED_HERDR_VERSION}`]
|
|
162
|
+
: []),
|
|
163
|
+
...(!agentsOk ? ["codex or claude"] : [])
|
|
164
|
+
]
|
|
165
|
+
};
|
|
166
|
+
const availableTransports = [
|
|
167
|
+
...(tmuxTransportOk ? ["tmux"] : []),
|
|
168
|
+
...(herdrVersionSupported ? ["herdr"] : [])
|
|
169
|
+
];
|
|
170
|
+
const anyTransportOk = availableTransports.length > 0;
|
|
137
171
|
return {
|
|
138
172
|
coreOk,
|
|
139
|
-
transportOk:
|
|
173
|
+
transportOk: anyTransportOk && agentsOk,
|
|
174
|
+
available_transports: availableTransports,
|
|
140
175
|
mode: "tmux",
|
|
141
|
-
readiness:
|
|
142
|
-
tmux
|
|
176
|
+
readiness: readinessFromParts([coreOk, anyTransportOk, agentsOk]),
|
|
177
|
+
tmux,
|
|
178
|
+
herdr
|
|
143
179
|
};
|
|
144
180
|
}
|
|
145
181
|
function buildProbeResult({ command, executable, args, status, durationMs, version, output, error, exitCode, signal }) {
|
|
@@ -149,6 +185,11 @@ function buildProbeResult({ command, executable, args, status, durationMs, versi
|
|
|
149
185
|
args,
|
|
150
186
|
status,
|
|
151
187
|
available: status === "ok",
|
|
188
|
+
...(command === "herdr"
|
|
189
|
+
? {
|
|
190
|
+
version_supported: status === "ok" && version === DOCTOR_SUPPORTED_HERDR_VERSION
|
|
191
|
+
}
|
|
192
|
+
: {}),
|
|
152
193
|
found: status !== "not_found",
|
|
153
194
|
executable_ok: !["not_found", "not_executable"].includes(status),
|
|
154
195
|
duration_ms: durationMs,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-capabilities.js","sourceRoot":"","sources":["../../src/doctor-capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor-capabilities.js","sourceRoot":"","sources":["../../src/doctor-capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { type CommandResult, type TerminalControlProvider } from "./terminal-control-provider.js";
|
|
2
|
+
import { type TerminalControlCapability, type TerminalControlRef, type TerminalEndpointRef, type TerminalProviderCapability } from "./terminal-control-ref.js";
|
|
3
|
+
import type { TerminalProcessSnapshot } from "./terminal-agent-adapter.js";
|
|
4
|
+
export declare const HERDR_EXACT_VERSION = "0.8.0";
|
|
5
|
+
export declare const HERDR_EXACT_PROTOCOL = 19;
|
|
6
|
+
type JsonRecord = Record<string, unknown>;
|
|
7
|
+
export interface HerdrWireRequest {
|
|
8
|
+
id: string;
|
|
9
|
+
method: string;
|
|
10
|
+
params: JsonRecord;
|
|
11
|
+
}
|
|
12
|
+
export interface HerdrSocketIdentity {
|
|
13
|
+
device: string;
|
|
14
|
+
inode: string;
|
|
15
|
+
ctimeNs: string;
|
|
16
|
+
ownerUid?: number;
|
|
17
|
+
}
|
|
18
|
+
export interface HerdrRequestOptions {
|
|
19
|
+
expectedSocketIdentity?: HerdrSocketIdentity;
|
|
20
|
+
}
|
|
21
|
+
export type HerdrRequestFunction = (socketPath: string, request: HerdrWireRequest, options?: HerdrRequestOptions) => Promise<unknown>;
|
|
22
|
+
export interface HerdrSessionInfo {
|
|
23
|
+
name: string;
|
|
24
|
+
default: boolean;
|
|
25
|
+
running: boolean;
|
|
26
|
+
socketPath: string;
|
|
27
|
+
sessionDir: string;
|
|
28
|
+
}
|
|
29
|
+
export interface HerdrTerminalControlDiagnostics {
|
|
30
|
+
commands: string[];
|
|
31
|
+
selectedCommand?: string;
|
|
32
|
+
expectedVersion: string;
|
|
33
|
+
expectedProtocol: number;
|
|
34
|
+
sessions: HerdrSessionInfo[];
|
|
35
|
+
attempts: Array<{
|
|
36
|
+
session: string;
|
|
37
|
+
socketPath: string;
|
|
38
|
+
status: "ok" | "error";
|
|
39
|
+
paneCount?: number;
|
|
40
|
+
skippedWithoutShellPid?: string[];
|
|
41
|
+
error?: string;
|
|
42
|
+
}>;
|
|
43
|
+
terminalCount: number;
|
|
44
|
+
}
|
|
45
|
+
/** A structured Herdr API rejection received after a complete request. */
|
|
46
|
+
export declare class HerdrApiError extends Error {
|
|
47
|
+
readonly code: string;
|
|
48
|
+
readonly requestId: string;
|
|
49
|
+
constructor(code: string, message: string, requestId: string);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Raw socket failure with an explicit dispatch boundary.
|
|
53
|
+
*
|
|
54
|
+
* `definitelyNotSent` is true only when the Unix socket never connected or
|
|
55
|
+
* the request was rejected locally before any socket write was attempted.
|
|
56
|
+
*/
|
|
57
|
+
export declare class HerdrTransportError extends Error {
|
|
58
|
+
readonly definitelyNotSent: boolean;
|
|
59
|
+
constructor(message: string, definitelyNotSent: boolean, options?: {
|
|
60
|
+
cause?: unknown;
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Send one newline-delimited JSON request over a Herdr Unix-domain socket.
|
|
65
|
+
* Normal Herdr requests receive exactly one newline-delimited JSON response.
|
|
66
|
+
*/
|
|
67
|
+
export declare function requestHerdrUnixSocket(socketPath: string, request: HerdrWireRequest, options?: {
|
|
68
|
+
timeoutMs?: number;
|
|
69
|
+
maxResponseBytes?: number;
|
|
70
|
+
expectedSocketIdentity?: HerdrSocketIdentity;
|
|
71
|
+
}): Promise<unknown>;
|
|
72
|
+
export declare class HerdrTerminalControlProvider implements TerminalControlProvider {
|
|
73
|
+
readonly kind = "herdr";
|
|
74
|
+
readonly supportedCapabilities: readonly TerminalControlCapability[];
|
|
75
|
+
readonly providerCapabilities: readonly TerminalProviderCapability[];
|
|
76
|
+
private readonly commands;
|
|
77
|
+
private selectedCommand?;
|
|
78
|
+
private readonly runCommand;
|
|
79
|
+
private readonly request;
|
|
80
|
+
private readonly statSocket;
|
|
81
|
+
private readonly endpointSocketIdentities;
|
|
82
|
+
private requestSequence;
|
|
83
|
+
constructor(options?: {
|
|
84
|
+
command?: string;
|
|
85
|
+
runCommand?: (command: string, args: string[]) => CommandResult;
|
|
86
|
+
request?: HerdrRequestFunction;
|
|
87
|
+
requestTimeoutMs?: number;
|
|
88
|
+
statSocket?: (socketPath: string) => HerdrSocketIdentity;
|
|
89
|
+
});
|
|
90
|
+
diagnostics(): Promise<Record<string, unknown>>;
|
|
91
|
+
listTerminals(): Promise<TerminalEndpointRef[]>;
|
|
92
|
+
endpoint(terminalControl: TerminalControlRef): TerminalEndpointRef;
|
|
93
|
+
toControlRef(terminal: TerminalEndpointRef, capabilities?: readonly TerminalControlCapability[]): TerminalControlRef;
|
|
94
|
+
resolve(terminal: TerminalEndpointRef): Promise<TerminalEndpointRef>;
|
|
95
|
+
containsProcess(terminal: TerminalEndpointRef, process: Pick<TerminalProcessSnapshot, "pid" | "ppid">, processes: readonly Pick<TerminalProcessSnapshot, "pid" | "ppid">[]): boolean;
|
|
96
|
+
capture(terminal: TerminalEndpointRef, options?: {
|
|
97
|
+
scrollbackLines?: number;
|
|
98
|
+
preserveEscapes?: boolean;
|
|
99
|
+
}): Promise<string>;
|
|
100
|
+
sendText(terminal: TerminalEndpointRef, text: string): Promise<void>;
|
|
101
|
+
sendKeys(terminal: TerminalEndpointRef, keys: readonly string[]): Promise<void>;
|
|
102
|
+
private discoverSessions;
|
|
103
|
+
private probeCommand;
|
|
104
|
+
private inspectSession;
|
|
105
|
+
private assertCompatibleServer;
|
|
106
|
+
private invoke;
|
|
107
|
+
private resolveForInput;
|
|
108
|
+
private sendInput;
|
|
109
|
+
private requireEndpointSocketIdentity;
|
|
110
|
+
}
|
|
111
|
+
export declare function parseHerdrSessionList(output: string): HerdrSessionInfo[];
|
|
112
|
+
/** Translate the tmux-oriented bridge key vocabulary to Herdr key combos. */
|
|
113
|
+
export declare function translateHerdrKey(value: string): string;
|
|
114
|
+
export declare function readHerdrSocketIdentity(socketPath: string): HerdrSocketIdentity;
|
|
115
|
+
export {};
|