@scotthuang/agent-knock-knock 0.14.14 → 0.14.16

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.
Files changed (43) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/CONTRIBUTING.md +43 -0
  3. package/README.md +5 -5
  4. package/connectors/deepseek-harness/README.md +33 -17
  5. package/connectors/pi/README.md +32 -8
  6. package/dist/src/codex-native-public-projection.d.ts +191 -0
  7. package/dist/src/codex-native-public-projection.js +7 -0
  8. package/dist/src/codex-native-public-projection.js.map +1 -1
  9. package/dist/src/conversation-list-presentation.d.ts +8 -0
  10. package/dist/src/conversation-list-presentation.js +65 -4
  11. package/dist/src/conversation-list-presentation.js.map +1 -1
  12. package/dist/src/conversation-list.d.ts +8 -0
  13. package/dist/src/doctor-capabilities.d.ts +7 -2
  14. package/dist/src/doctor-capabilities.js +15 -14
  15. package/dist/src/doctor-capabilities.js.map +1 -1
  16. package/dist/src/herdr-api-contract.d.ts +15 -0
  17. package/dist/src/herdr-api-contract.js +152 -0
  18. package/dist/src/herdr-api-contract.js.map +1 -0
  19. package/dist/src/herdr-compatibility.d.ts +48 -0
  20. package/dist/src/herdr-compatibility.js +36 -0
  21. package/dist/src/herdr-compatibility.js.map +1 -0
  22. package/dist/src/herdr-operation-capabilities.d.ts +17 -0
  23. package/dist/src/herdr-operation-capabilities.js +66 -0
  24. package/dist/src/herdr-operation-capabilities.js.map +1 -0
  25. package/dist/src/herdr-terminal-control-provider.d.ts +11 -6
  26. package/dist/src/herdr-terminal-control-provider.js +158 -79
  27. package/dist/src/herdr-terminal-control-provider.js.map +1 -1
  28. package/dist/src/install-doctor-command-adapter.js +5 -2
  29. package/dist/src/install-doctor-command-adapter.js.map +1 -1
  30. package/dist/src/semantic-tool-command-helpers.js +7 -1
  31. package/dist/src/semantic-tool-command-helpers.js.map +1 -1
  32. package/dist/src/semantic-tool-list-projection.js +17 -3
  33. package/dist/src/semantic-tool-list-projection.js.map +1 -1
  34. package/dist/src/terminal-monitor-decision-policy.d.ts +1 -1
  35. package/dist/src/terminal-permission-control-list-projection.d.ts +1 -1
  36. package/docs/codex-cli-native-compatibility.md +3 -0
  37. package/docs/list-output.md +23 -0
  38. package/docs/openclaw-operations.md +1 -1
  39. package/docs/pi-dsh-compatibility.md +59 -4
  40. package/docs/quickstart-herdr.md +15 -3
  41. package/docs/testing.md +1 -1
  42. package/package.json +1 -1
  43. package/templates/openclaw-skills/agent-knock-knock/SKILL.md +4 -2
@@ -6,18 +6,79 @@ import { hostListWatchNeedsAttention } from "./semantic-tool-list-budget.js";
6
6
  import { recordValue } from "./value-guards.js";
7
7
  /** Prefer a verified backend for an unambiguous project display, without creating a routing alias. */
8
8
  export function presentConversationList(conversations, physicalTerminals, options = {}) {
9
- const groups = workspaceGroups(conversations, physicalTerminals);
10
- const hidden = new Set(options.diagnostics ? [] : groups.map(group => group.terminal_conversation_id));
9
+ const unstarted = unstartedDisplayCandidates(conversations, physicalTerminals);
10
+ const candidates = new Set(unstarted.map(row => String(row.conversation_id)));
11
+ const preferred = conversations.filter(row => !candidates.has(String(row.conversation_id)));
12
+ const groups = workspaceGroups(preferred, physicalTerminals);
13
+ const hidden = new Set(options.diagnostics ? [] : [...candidates, ...groups.map(group => group.terminal_conversation_id)]);
11
14
  return {
12
15
  conversations: conversations.filter(row => !hidden.has(String(row.conversation_id)))
13
- .map((row) => ({ ...row, surface: row.source === "codex_desktop" ? "desktop" : "cli" })),
16
+ .map((row) => ({ ...row, surface: row.source === "codex_desktop" ? "desktop" : "cli",
17
+ ...(options.diagnostics && candidates.has(String(row.conversation_id))
18
+ ? { classification: "unstarted_candidate", frontend_presence: "unverified" } : {}) })),
14
19
  conversation_presentation: {
15
20
  mode: options.diagnostics ? "diagnostics" : "default",
16
- workspace_grouped_connections: hidden.size,
21
+ workspace_grouped_connections: options.diagnostics ? 0 : groups.length,
22
+ ...(unstarted.length ? { unstarted_candidates_count: unstarted.length,
23
+ unstarted_candidates_omitted: options.diagnostics ? 0 : unstarted.length,
24
+ ...(!options.diagnostics ? { diagnostic_query: { tool: "agent_knock_knock_list", arguments: { terminalDebug: true } } } : {}) } : {}),
17
25
  ...(options.diagnostics ? { workspace_groups: groups } : {})
18
26
  }
19
27
  };
20
28
  }
29
+ /** A display preference, never proof that an unstarted thread is orphaned or a routing alias. */
30
+ function unstartedDisplayCandidates(conversations, terminals) {
31
+ const native = conversations.filter(row => row.source === "codex_cli" && row.agent === "codex");
32
+ return native.filter(candidate => {
33
+ if (!unstartedCandidate(candidate))
34
+ return false;
35
+ const identity = codexDisplayIdentity(candidate), key = workspaceKey(candidate);
36
+ if (!identity || !key)
37
+ return false;
38
+ const peers = native.filter(row => workspaceKey(row) === key);
39
+ if (peers.some(row => codexDisplayIdentity(row)?.codexHome !== identity.codexHome)
40
+ || peers.filter(row => row.conversation_id === candidate.conversation_id).length !== 1)
41
+ return false;
42
+ const established = peers.filter(hasEstablishedTask);
43
+ if (established.length !== 1)
44
+ return false;
45
+ const physical = terminals.filter(row => workspaceKey(row) === key);
46
+ if (physical.length > 1 || physical.some(row => row.process_state !== "active"))
47
+ return false;
48
+ const projected = conversations.filter(row => String(row.conversation_id).startsWith("terminal:") && workspaceKey(row) === key);
49
+ if ([...physical, ...projected].some(row => !canGroup(row, established[0]) || needsOwnTerminalEntry(row)))
50
+ return false;
51
+ return ![...terminals, ...projected].some(row => terminalNamesThread(row, identity.threadId));
52
+ });
53
+ }
54
+ function unstartedCandidate(row) {
55
+ return row.unstarted_thread === true && row.history_state === "unmaterialized"
56
+ && row.native_turn_id === null && row.latest_turn === null && row.activity_state === "idle"
57
+ && row.observation_error === undefined && !needsOwnTerminalEntry(row)
58
+ && emptyArray(row.terminal_aliases) && emptyArray(row.terminal_controls)
59
+ && emptyArray(row.active_flags) && emptyArray(row.interaction_state);
60
+ }
61
+ function emptyArray(value) { return value === undefined || Array.isArray(value) && value.length === 0; }
62
+ function hasEstablishedTask(row) {
63
+ const turn = recordValue(row.latest_turn);
64
+ return row.history_state !== "unmaterialized" && row.observation_error === undefined
65
+ && typeof row.native_turn_id === "string" && row.native_turn_id.length > 0 && turn?.id === row.native_turn_id;
66
+ }
67
+ function codexDisplayIdentity(row) {
68
+ if (row.connection_state !== "loaded_backend_verified")
69
+ return undefined;
70
+ try {
71
+ const identity = parseCodexNativeConversationId(String(row.conversation_id ?? ""));
72
+ return row.native_thread_id === identity.threadId ? identity : undefined;
73
+ }
74
+ catch {
75
+ return undefined;
76
+ }
77
+ }
78
+ function terminalNamesThread(row, threadId) {
79
+ return [row.native_agent_session_id, row.native_agent_status_card_session_id, row._routing_inspection_thread_id]
80
+ .some(value => typeof value === "string" && value.toLowerCase() === threadId.toLowerCase());
81
+ }
21
82
  function workspaceGroups(conversations, physicalTerminals) {
22
83
  const nativeRows = conversations.filter(row => ["codex_cli", "claude_cli"].includes(String(row.source)));
23
84
  const groups = [];
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-list-presentation.js","sourceRoot":"","sources":["../../src/conversation-list-presentation.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMhD,sGAAsG;AACtG,MAAM,UAAU,uBAAuB,CAAC,aAA6B,EAAE,iBAAiC,EACtG,OAAO,GAAwC,EAAE;IACjD,MAAM,MAAM,GAAG,eAAe,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;IACvG,OAAO;QACL,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;aACjF,GAAG,CAAC,CAAC,GAAG,EAAO,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,KAAK,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/F,yBAAyB,EAAE;YACzB,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;YACrD,6BAA6B,EAAE,MAAM,CAAC,IAAI;YAC1C,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7D;KACF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,aAA6B,EAAE,iBAAiC;IACvF,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACzG,MAAM,MAAM,GAAqB,EAAE,CAAC;IACpC,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,IAAI,QAAQ,CAAC,aAAa,KAAK,QAAQ;YAAE,SAAS;QAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,KAAK,UAAU,CAAC,CAAC;QAC9E,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,KAAK,GAAG;YAClF,qBAAqB,CAAC,QAAQ,CAAC,IAAI,qBAAqB,CAAC,OAAO,CAAC;YAAE,SAAS;QAC9E,+GAA+G;QAC/G,IAAI,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACtF,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;QACvE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACtC,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;YAChF,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;YAAE,SAAS;QACtE,MAAM,CAAC,IAAI,CAAC,EAAE,wBAAwB,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAChH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,gGAAgG;AAChG,SAAS,qBAAqB,CAAC,GAAQ;IACrC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACvG,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAe,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACjE,OAAO,GAAG,CAAC,gBAAgB,KAAK,UAAU,IAAI,GAAG,CAAC,gBAAgB,KAAK,aAAa;QAClF,OAAO,CAAC,OAAO,EAAE,YAAY,IAAI,GAAG,CAAC,mBAAmB,IAAI,GAAG,CAAC,sBAAsB,IAAI,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,gBAAgB,CAAC;QACpI,cAAc,CAAC,IAAI,CAAC,2BAA2B,CAAC;QAChD,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;QAClE,QAAQ,EAAE,OAAO,KAAK,IAAI,IAAI,QAAQ,EAAE,UAAU,KAAK,IAAI,IAAI,GAAG,CAAC,kBAAkB,KAAK,IAAI;QAC9F,CAAC,sBAAsB,EAAE,qBAAqB,EAAE,2BAA2B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9G,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5G,CAAC;AAED,SAAS,YAAY,CAAC,GAAQ;IAC5B,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACvE,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5D,CAAC;AAED,SAAS,QAAQ,CAAC,QAAa,EAAE,MAAW;IAC1C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;QACtD,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO,IAAI,MAAM,CAAC,gBAAgB,KAAK,yBAAyB,EAAE,CAAC;YACtF,MAAM,QAAQ,GAAG,8BAA8B,CAAC,QAAQ,CAAC,CAAC;YAC1D,IAAI,MAAM,CAAC,gBAAgB,KAAK,QAAQ,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC/G,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,uBAAuB,EAAE,QAAQ,CAAC,WAAW,CAAC;iBACjF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,gBAAgB,KAAK,0BAA0B,EAAE,CAAC;YACxF,MAAM,QAAQ,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAC;YAC3D,MAAM,KAAK,GAAG,QAAQ,CAAC,6BAA6B,IAAI,QAAQ,CAAC,0BAA0B,CAAC;YAC5F,OAAO,MAAM,CAAC,gBAAgB,KAAK,QAAQ,CAAC,SAAS,IAAI,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG;mBAChH,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC;mBAC7C,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,yBAAyB,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;QACrH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,yDAAyD,CAAC,CAAC;IACrE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,QAAa,EAAE,cAAsB;IAC3D,OAAO,CAAC,QAAQ,CAAC,uBAAuB,EAAE,QAAQ,CAAC,mCAAmC;QACpF,QAAQ,CAAC,6BAA6B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QACzF,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC;QACjG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"conversation-list-presentation.js","sourceRoot":"","sources":["../../src/conversation-list-presentation.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,14 @@ export declare function unifiedConversationList(result: Row, terminals: readonly
10
10
  conversation_presentation: {
11
11
  mode: string;
12
12
  workspace_grouped_connections: number;
13
+ unstarted_candidates_count?: number | undefined;
14
+ unstarted_candidates_omitted?: number | undefined;
15
+ diagnostic_query?: {
16
+ tool: string;
17
+ arguments: {
18
+ terminalDebug: boolean;
19
+ };
20
+ } | undefined;
13
21
  workspace_groups?: {
14
22
  terminal_conversation_id: string;
15
23
  native_conversation_id: string;
@@ -6,6 +6,7 @@ export interface DoctorCommandCheck {
6
6
  command: string;
7
7
  available: boolean;
8
8
  version_supported?: boolean;
9
+ version_tested?: boolean;
9
10
  native_profile_supported?: boolean;
10
11
  native_profile?: string;
11
12
  native_actions_available?: boolean;
@@ -47,8 +48,12 @@ interface DoctorTmuxCapability extends DoctorModeCapability {
47
48
  recommended: true;
48
49
  }
49
50
  interface DoctorHerdrCapability extends DoctorModeCapability {
51
+ /** Legacy diagnostic: a valid CLI is not excluded by its release number. */
50
52
  version_supported: boolean;
51
- required_version: typeof DOCTOR_SUPPORTED_HERDR_VERSION;
53
+ version_tested: boolean;
54
+ tested_versions: readonly string[];
55
+ compatibility_policy: "capability_probe";
56
+ runtime_capability_state: "not_probed";
52
57
  }
53
58
  export interface DoctorCapabilitySummary {
54
59
  coreOk: boolean;
@@ -60,7 +65,7 @@ export interface DoctorCapabilitySummary {
60
65
  tmux: DoctorTmuxCapability;
61
66
  herdr: DoctorHerdrCapability;
62
67
  }
63
- export declare const DOCTOR_SUPPORTED_HERDR_VERSION: "0.8.0";
68
+ export declare const DOCTOR_SUPPORTED_HERDR_VERSION: "0.9.5";
64
69
  export declare const DOCTOR_PROBE_COMMANDS: readonly DoctorProbeCommand[];
65
70
  /**
66
71
  * Return the exact native lifecycle/status profile verified for a coding-agent
@@ -1,7 +1,9 @@
1
1
  import { spawnSync } from "node:child_process";
2
+ import { HERDR_EXACT_VERSION, HERDR_SUPPORTED_VERSIONS, herdrCompatibilityProfile } from "./herdr-compatibility.js";
2
3
  import { claudeNativeInspectionBehaviorProfile, claudeRuntimeCompatibilityWarning, claudeRuntimeLifecycleCompatibilityProfile } from "./claude-lifecycle-compatibility.js";
3
4
  import { codexLifecycleBehaviorProfile, codexRuntimeCompatibilityProfile, codexRuntimeLifecycleBehaviorProfile } from "./codex-lifecycle-compatibility.js";
4
- export const DOCTOR_SUPPORTED_HERDR_VERSION = "0.8.0";
5
+ export const DOCTOR_SUPPORTED_HERDR_VERSION = HERDR_EXACT_VERSION;
6
+ const HERDR_VERSION_REQUIREMENT = "herdr (runtime capabilities checked per operation)";
5
7
  const DEFAULT_PROBE_TIMEOUT_MS = 3_000;
6
8
  const MAX_PROBE_TIMEOUT_MS = 30_000;
7
9
  const MAX_PROBE_BUFFER_BYTES = 64 * 1024;
@@ -140,7 +142,6 @@ export function evaluateDoctorCapabilities(checks) {
140
142
  const tmuxTransportOk = isUsable(checkByCommand.get("tmux"));
141
143
  const herdrCheck = checkByCommand.get("herdr");
142
144
  const herdrExecutableOk = isUsable(herdrCheck);
143
- const herdrVersionSupported = herdrExecutableOk && herdrCheck?.version_supported === true;
144
145
  const tmux = {
145
146
  available: tmuxTransportOk && agentsOk,
146
147
  status: readinessFromParts([coreOk, tmuxTransportOk, agentsOk]),
@@ -154,30 +155,29 @@ export function evaluateDoctorCapabilities(checks) {
154
155
  ]
155
156
  };
156
157
  const herdr = {
157
- available: herdrVersionSupported && agentsOk,
158
- status: readinessFromParts([coreOk, herdrVersionSupported, agentsOk]),
159
- version_supported: herdrVersionSupported,
160
- required_version: DOCTOR_SUPPORTED_HERDR_VERSION,
158
+ available: herdrExecutableOk && agentsOk,
159
+ status: readinessFromParts([coreOk, herdrExecutableOk, agentsOk]),
160
+ version_supported: herdrExecutableOk,
161
+ version_tested: herdrCheck?.version_tested === true,
162
+ tested_versions: HERDR_SUPPORTED_VERSIONS,
163
+ compatibility_policy: "capability_probe",
164
+ runtime_capability_state: "not_probed",
161
165
  agents: availableAgents,
162
166
  requires: [
163
167
  "node",
164
168
  "openclaw",
165
- `herdr ${DOCTOR_SUPPORTED_HERDR_VERSION}`,
169
+ HERDR_VERSION_REQUIREMENT,
166
170
  "codex or claude"
167
171
  ],
168
172
  missing: [
169
173
  ...missingCore,
170
- ...(!herdrExecutableOk
171
- ? ["herdr"]
172
- : !herdrVersionSupported
173
- ? [`herdr ${DOCTOR_SUPPORTED_HERDR_VERSION}`]
174
- : []),
174
+ ...(!herdrExecutableOk ? ["herdr"] : []),
175
175
  ...(!agentsOk ? ["codex or claude"] : [])
176
176
  ]
177
177
  };
178
178
  const availableTransports = [
179
179
  ...(tmuxTransportOk ? ["tmux"] : []),
180
- ...(herdrVersionSupported ? ["herdr"] : [])
180
+ ...(herdrExecutableOk ? ["herdr"] : [])
181
181
  ];
182
182
  const anyTransportOk = availableTransports.length > 0;
183
183
  return {
@@ -232,7 +232,8 @@ function buildProbeResult({ command, executable, args, status, durationMs, versi
232
232
  : {}),
233
233
  ...(command === "herdr"
234
234
  ? {
235
- version_supported: status === "ok" && version === DOCTOR_SUPPORTED_HERDR_VERSION
235
+ version_supported: status === "ok",
236
+ version_tested: herdrCompatibilityProfile(version) !== undefined
236
237
  }
237
238
  : {}),
238
239
  found: status !== "not_found",
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-capabilities.js","sourceRoot":"","sources":["../../src/doctor-capabilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor-capabilities.js","sourceRoot":"","sources":["../../src/doctor-capabilities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export interface HerdrOperationSupport {
2
+ state: "available" | "unsupported" | "unknown";
3
+ reason: string;
4
+ }
5
+ export interface HerdrDeclaredInputContract {
6
+ textInput: HerdrOperationSupport;
7
+ keyInput: HerdrOperationSupport;
8
+ rawTextInput: HerdrOperationSupport;
9
+ }
10
+ /**
11
+ * Inspect a CLI declaration, not remote negotiation or proof of execution.
12
+ * Callers must bind its version/protocol to the current server observation.
13
+ * Unknown constraints cannot silently authorize input; no input is probed here.
14
+ */
15
+ export declare function inspectHerdrInputSchema(schema: unknown, protocol: number): HerdrDeclaredInputContract;
@@ -0,0 +1,152 @@
1
+ import { isRecord } from "./value-guards.js";
2
+ const ANNOTATIONS = new Set([
3
+ "$comment", "title", "description", "default", "examples", "deprecated"
4
+ ]);
5
+ const DIALECT = "https://json-schema.org/draft/2020-12/schema";
6
+ /**
7
+ * Inspect a CLI declaration, not remote negotiation or proof of execution.
8
+ * Callers must bind its version/protocol to the current server observation.
9
+ * Unknown constraints cannot silently authorize input; no input is probed here.
10
+ */
11
+ export function inspectHerdrInputSchema(schema, protocol) {
12
+ if (!isRecord(schema) || schema.schema_version !== 1 || !isRecord(schema.schemas) ||
13
+ "$id" in schema || (schema.$schema !== undefined && schema.$schema !== DIALECT)) {
14
+ return unavailableContract("unknown", "unrecognized_cli_schema_envelope");
15
+ }
16
+ if (schema.protocol !== protocol)
17
+ return unavailableContract("unknown", "cli_schema_protocol_mismatch");
18
+ const { request, success_response: success, error_response: error } = schema.schemas;
19
+ if (!isRecord(request) || !isRecord(success) || !isRecord(error)) {
20
+ return unavailableContract("unknown", "cli_schema_envelopes_missing");
21
+ }
22
+ const reader = new HerdrSchemaReader(schema);
23
+ if (!validEnvelopes(reader, request, success, error)) {
24
+ return unavailableContract("unsupported", "cli_schema_request_or_ack_contract_incompatible");
25
+ }
26
+ return {
27
+ textInput: inputOperation(reader, request, "pane.send_input", "text"),
28
+ keyInput: inputOperation(reader, request, "pane.send_input", "keys"),
29
+ rawTextInput: inputOperation(reader, request, "pane.send_text", "text")
30
+ };
31
+ }
32
+ function unavailableContract(state, reason) {
33
+ return { textInput: { state, reason }, keyInput: { state, reason }, rawTextInput: { state, reason } };
34
+ }
35
+ /** Only the bounded, internal-reference JSON Schema subset used by Herdr. */
36
+ class HerdrSchemaReader {
37
+ schema;
38
+ constructor(schema) {
39
+ this.schema = schema;
40
+ }
41
+ deref(value) {
42
+ const visited = new Set();
43
+ for (let depth = 0; depth < 8; depth++) {
44
+ if (!isRecord(value))
45
+ return undefined;
46
+ if (!("$ref" in value))
47
+ return value;
48
+ const ref = value.$ref;
49
+ if (typeof ref !== "string" || !ref.startsWith("#/schemas/") || visited.has(ref) ||
50
+ !onlyKeys(value, ["$ref"]))
51
+ return undefined;
52
+ visited.add(ref);
53
+ value = this.pointer(ref);
54
+ }
55
+ return undefined;
56
+ }
57
+ pointer(ref) {
58
+ let value = this.schema;
59
+ for (const part of ref.slice(2).split("/")) {
60
+ const key = part.replace(/~1/g, "/").replace(/~0/g, "~");
61
+ if (!isRecord(value) || !Object.hasOwn(value, key) || "$id" in value ||
62
+ (value.$schema !== undefined && value.$schema !== DIALECT))
63
+ return undefined;
64
+ value = value[key];
65
+ }
66
+ return value;
67
+ }
68
+ string(value, constant) {
69
+ const shape = this.deref(value);
70
+ return !!shape && shape.type === "string" &&
71
+ onlyKeys(shape, constant === undefined ? ["type"] : ["type", "const"]) &&
72
+ (constant === undefined || shape.const === constant);
73
+ }
74
+ object(value, sent, required, extras = []) {
75
+ const shape = this.deref(value);
76
+ if (!shape || shape.type !== "object" || !isRecord(shape.properties) ||
77
+ !onlyKeys(shape, ["type", "properties", "required", "$defs", ...extras]) ||
78
+ !Array.isArray(shape.required) ||
79
+ !shape.required.every((key) => typeof key === "string" && sent.includes(key)) ||
80
+ !required.every((key) => shape.required.includes(key)))
81
+ return undefined;
82
+ return shape;
83
+ }
84
+ // Unknown branches can overlap. Exclude only a provably different discriminator.
85
+ possibleVariants(variants, key, expected) {
86
+ if (!Array.isArray(variants))
87
+ return [];
88
+ return variants.filter((value) => {
89
+ const shape = this.deref(value);
90
+ const discriminator = shape && isRecord(shape.properties) ? this.deref(shape.properties[key]) : undefined;
91
+ return !discriminator || typeof discriminator.const !== "string" || discriminator.const === expected;
92
+ });
93
+ }
94
+ }
95
+ function property(shape, key) {
96
+ return isRecord(shape.properties) ? shape.properties[key] : undefined;
97
+ }
98
+ function validEnvelopes(reader, request, success, error) {
99
+ const req = reader.object(request, ["id", "method", "params"], ["id"], ["oneOf"]);
100
+ const ack = reader.object(success, ["id", "result"], ["id", "result"]);
101
+ const err = reader.object(error, ["id", "error"], ["id", "error"]);
102
+ if (!req || !ack || !err || !Array.isArray(req.oneOf) ||
103
+ Object.keys(req.properties).some((key) => key !== "id"))
104
+ return false;
105
+ const body = reader.object(property(err, "error"), ["code", "message"], ["code", "message"]);
106
+ const result = reader.deref(property(ack, "result"));
107
+ if (!body || !result || !onlyKeys(result, ["oneOf"]))
108
+ return false;
109
+ const oks = reader.possibleVariants(result.oneOf, "type", "ok");
110
+ const ok = oks.length === 1 && reader.object(oks[0], ["type"], ["type"]);
111
+ return !!ok && reader.string(property(ok, "type"), "ok") &&
112
+ [req, ack, err].every((shape) => reader.string(property(shape, "id"))) &&
113
+ reader.string(property(body, "code")) && reader.string(property(body, "message"));
114
+ }
115
+ function inputOperation(reader, request, method, field) {
116
+ const unavailable = (detail) => ({
117
+ state: "unsupported", reason: `cli_schema_${method}_${field}_${detail}`
118
+ });
119
+ const variants = reader.possibleVariants(request.oneOf, "method", method);
120
+ if (variants.length !== 1)
121
+ return unavailable("method_missing_or_ambiguous");
122
+ const variant = reader.object(variants[0], ["method", "params"], ["method", "params"]);
123
+ if (!variant || !reader.string(property(variant, "method"), method))
124
+ return unavailable("request_incompatible");
125
+ if (Object.keys(variant.properties).some((key) => !["method", "params"].includes(key))) {
126
+ return unavailable("unrecognized_envelope_constraint");
127
+ }
128
+ const params = reader.deref(property(variant, "params"));
129
+ if (params?.additionalProperties !== undefined && typeof params.additionalProperties !== "boolean") {
130
+ return unavailable("unknown_additional_properties_constraint");
131
+ }
132
+ // additionalProperties=false is safe here: every field we send is declared.
133
+ const shape = reader.object(params, ["pane_id", field], ["pane_id"], ["additionalProperties"]);
134
+ if (!shape)
135
+ return unavailable("params_incompatible");
136
+ if (!reader.string(property(shape, "pane_id")))
137
+ return unavailable("pane_identity_incompatible");
138
+ if (!validPayload(reader, property(shape, field), field))
139
+ return unavailable("payload_incompatible");
140
+ return { state: "available", reason: "matching_cli_schema" };
141
+ }
142
+ function validPayload(reader, value, field) {
143
+ if (field === "text")
144
+ return reader.string(value);
145
+ const keys = reader.deref(value);
146
+ return !!keys && keys.type === "array" && onlyKeys(keys, ["type", "items"]) && reader.string(keys.items);
147
+ }
148
+ function onlyKeys(value, keys) {
149
+ return Object.keys(value).every((key) => ANNOTATIONS.has(key) || keys.includes(key) ||
150
+ (key === "$schema" && value[key] === DIALECT));
151
+ }
152
+ //# sourceMappingURL=herdr-api-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"herdr-api-contract.js","sourceRoot":"","sources":["../../src/herdr-api-contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Releases with direct behavior evidence, not a runtime version allowlist.
3
+ * Herdr's endpoint protocol generation is a separate UI protocol; ping and
4
+ * session.snapshot report the protocol numbers below.
5
+ *
6
+ * v0.8.0 and v0.9.5 retain the same NDJSON envelopes, terminal/process identity,
7
+ * pane.read sources and formats, and single-enqueue pane.send_input semantics.
8
+ * v0.9.5 adds a pre-enqueue canonical-line size check (pane_send_failed).
9
+ */
10
+ export declare const HERDR_COMPATIBILITY_PROFILES: readonly [{
11
+ readonly version: "0.9.5";
12
+ readonly protocol: 22;
13
+ }, {
14
+ readonly version: "0.8.0";
15
+ readonly protocol: 19;
16
+ }];
17
+ export type HerdrCompatibilityProfile = typeof HERDR_COMPATIBILITY_PROFILES[number];
18
+ export interface HerdrServerObservation {
19
+ version: string;
20
+ protocol: number;
21
+ baselineKnown: boolean;
22
+ }
23
+ export interface HerdrOperationCapability {
24
+ state: "available" | "unsupported" | "unknown";
25
+ reason: string;
26
+ evidence: "runtime_probe" | "matching_cli_schema" | "verified_release" | "none";
27
+ }
28
+ export interface HerdrOperationCapabilities {
29
+ visibleText: HerdrOperationCapability;
30
+ visibleAnsi: HerdrOperationCapability;
31
+ detectionText: HerdrOperationCapability;
32
+ textInput: HerdrOperationCapability;
33
+ keyInput: HerdrOperationCapability;
34
+ rawTextInput: HerdrOperationCapability;
35
+ }
36
+ /** Latest verified release, retained for diagnostic and fixture compatibility. */
37
+ export declare const HERDR_EXACT_VERSION: "0.9.5";
38
+ export declare const HERDR_EXACT_PROTOCOL: 22;
39
+ export declare const HERDR_SUPPORTED_VERSIONS: ("0.8.0" | "0.9.5")[];
40
+ export declare function herdrCompatibilityProfile(version: unknown): HerdrCompatibilityProfile | undefined;
41
+ export declare function matchesHerdrCompatibilityProfile(value: {
42
+ version?: unknown;
43
+ protocol?: unknown;
44
+ }, profile: Pick<HerdrServerObservation, "version" | "protocol">): boolean;
45
+ export declare function observeHerdrServer(value: {
46
+ version?: unknown;
47
+ protocol?: unknown;
48
+ }): HerdrServerObservation | undefined;
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Releases with direct behavior evidence, not a runtime version allowlist.
3
+ * Herdr's endpoint protocol generation is a separate UI protocol; ping and
4
+ * session.snapshot report the protocol numbers below.
5
+ *
6
+ * v0.8.0 and v0.9.5 retain the same NDJSON envelopes, terminal/process identity,
7
+ * pane.read sources and formats, and single-enqueue pane.send_input semantics.
8
+ * v0.9.5 adds a pre-enqueue canonical-line size check (pane_send_failed).
9
+ */
10
+ export const HERDR_COMPATIBILITY_PROFILES = [
11
+ { version: "0.9.5", protocol: 22 },
12
+ { version: "0.8.0", protocol: 19 }
13
+ ];
14
+ /** Latest verified release, retained for diagnostic and fixture compatibility. */
15
+ export const HERDR_EXACT_VERSION = HERDR_COMPATIBILITY_PROFILES[0].version;
16
+ export const HERDR_EXACT_PROTOCOL = HERDR_COMPATIBILITY_PROFILES[0].protocol;
17
+ export const HERDR_SUPPORTED_VERSIONS = HERDR_COMPATIBILITY_PROFILES.map((profile) => profile.version);
18
+ export function herdrCompatibilityProfile(version) {
19
+ return HERDR_COMPATIBILITY_PROFILES.find((profile) => profile.version === version);
20
+ }
21
+ export function matchesHerdrCompatibilityProfile(value, profile) {
22
+ return value.version === profile.version && value.protocol === profile.protocol;
23
+ }
24
+ export function observeHerdrServer(value) {
25
+ if (typeof value.version !== "string" || !value.version.trim() ||
26
+ typeof value.protocol !== "number" || !Number.isSafeInteger(value.protocol) ||
27
+ value.protocol < 0)
28
+ return undefined;
29
+ const baseline = herdrCompatibilityProfile(value.version);
30
+ return {
31
+ version: value.version,
32
+ protocol: value.protocol,
33
+ baselineKnown: baseline !== undefined && baseline.protocol === value.protocol
34
+ };
35
+ }
36
+ //# sourceMappingURL=herdr-compatibility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"herdr-compatibility.js","sourceRoot":"","sources":["../../src/herdr-compatibility.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;IAClC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;CAC1B,CAAC;AA0BX,kFAAkF;AAClF,MAAM,CAAC,MAAM,mBAAmB,GAAG,4BAA4B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAC3E,MAAM,CAAC,MAAM,oBAAoB,GAAG,4BAA4B,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAE7E,MAAM,CAAC,MAAM,wBAAwB,GAAG,4BAA4B,CAAC,GAAG,CACtE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAC7B,CAAC;AAEF,MAAM,UAAU,yBAAyB,CACvC,OAAgB;IAEhB,OAAO,4BAA4B,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,KAAgD,EAChD,OAA6D;IAE7D,OAAO,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,KAAgD;IAEhD,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;QAC1D,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC3E,KAAK,CAAC,QAAQ,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,MAAM,QAAQ,GAAG,yBAAyB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1D,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,aAAa,EAAE,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ;KAC9E,CAAC;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { TerminalControlCapability, TerminalEndpointRef, TerminalProviderCapability } from "./terminal-control-ref.js";
2
+ import type { HerdrOperationCapabilities, HerdrServerObservation } from "./herdr-compatibility.js";
3
+ export interface HerdrCliObservation {
4
+ version?: string;
5
+ schema?: unknown;
6
+ schemaState: "available" | "unavailable" | "malformed";
7
+ }
8
+ export declare function declaredHerdrInputCapabilities(cli: HerdrCliObservation, server: HerdrServerObservation): Pick<HerdrOperationCapabilities, "textInput" | "keyInput" | "rawTextInput">;
9
+ export declare function herdrControlCapabilities(operations: HerdrOperationCapabilities): TerminalControlCapability[];
10
+ export declare function assertOperationAvailable(capabilities: HerdrOperationCapabilities, operation: keyof HerdrOperationCapabilities): void;
11
+ export declare function assertInputEndpointCapability(terminal: TerminalEndpointRef, providerCapabilities: readonly TerminalProviderCapability[], providerCapability: "text_delivery" | "key_delivery", operations?: HerdrOperationCapabilities): void;
12
+ /** Prefer agent detection for plain status; visible text is a bounded fallback. */
13
+ export declare function selectHerdrReadOperation(capabilities: HerdrOperationCapabilities, viewportOnly: boolean, preserveEscapes: boolean): {
14
+ source: "visible" | "detection";
15
+ format: "text" | "ansi";
16
+ operation: "visibleText" | "visibleAnsi" | "detectionText";
17
+ };