@scotthuang/agent-knock-knock 0.16.0 → 0.16.2

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 (94) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/connectors/deepseek-harness/README.md +37 -11
  3. package/connectors/pi/README.md +33 -11
  4. package/dist/src/claude-managed-send-route.d.ts +2 -0
  5. package/dist/src/claude-managed-send-route.js +14 -0
  6. package/dist/src/claude-managed-send-route.js.map +1 -1
  7. package/dist/src/claude-terminal-agent-observation.d.ts +2 -0
  8. package/dist/src/claude-terminal-agent-observation.js +18 -1
  9. package/dist/src/claude-terminal-agent-observation.js.map +1 -1
  10. package/dist/src/claude-terminal-registry-observation.d.ts +12 -0
  11. package/dist/src/claude-terminal-registry-observation.js +32 -0
  12. package/dist/src/claude-terminal-registry-observation.js.map +1 -1
  13. package/dist/src/claude-user-explicit-input-proof.d.ts +9 -0
  14. package/dist/src/claude-user-explicit-input-proof.js +90 -0
  15. package/dist/src/claude-user-explicit-input-proof.js.map +1 -0
  16. package/dist/src/cli-core.js +1 -0
  17. package/dist/src/cli-core.js.map +1 -1
  18. package/dist/src/conversation-list.d.ts +3 -3
  19. package/dist/src/conversation-list.js +22 -9
  20. package/dist/src/conversation-list.js.map +1 -1
  21. package/dist/src/conversation-usage-guidance.d.ts +4 -0
  22. package/dist/src/conversation-usage-guidance.js +240 -0
  23. package/dist/src/conversation-usage-guidance.js.map +1 -0
  24. package/dist/src/semantic-tool-descriptions.js +17 -11
  25. package/dist/src/semantic-tool-descriptions.js.map +1 -1
  26. package/dist/src/semantic-tool-list-budget.js +2 -1
  27. package/dist/src/semantic-tool-list-budget.js.map +1 -1
  28. package/dist/src/semantic-tool-list-projection.d.ts +2 -2
  29. package/dist/src/semantic-tool-list-projection.js +10 -8
  30. package/dist/src/semantic-tool-list-projection.js.map +1 -1
  31. package/dist/src/semantic-tool-private-authority.js +13 -1
  32. package/dist/src/semantic-tool-private-authority.js.map +1 -1
  33. package/dist/src/semantic-tool-schemas.js +10 -6
  34. package/dist/src/semantic-tool-schemas.js.map +1 -1
  35. package/dist/src/terminal-action-contracts.js +28 -15
  36. package/dist/src/terminal-action-contracts.js.map +1 -1
  37. package/dist/src/terminal-agent-bridge.js +8 -11
  38. package/dist/src/terminal-agent-bridge.js.map +1 -1
  39. package/dist/src/terminal-composer-classifier.d.ts +1 -0
  40. package/dist/src/terminal-composer-classifier.js +7 -32
  41. package/dist/src/terminal-composer-classifier.js.map +1 -1
  42. package/dist/src/terminal-dispatch-execution.d.ts +4 -1
  43. package/dist/src/terminal-dispatch-execution.js +3 -2
  44. package/dist/src/terminal-dispatch-execution.js.map +1 -1
  45. package/dist/src/terminal-list-cli-adapter.d.ts +6 -0
  46. package/dist/src/terminal-list-cli-adapter.js +34 -17
  47. package/dist/src/terminal-list-cli-adapter.js.map +1 -1
  48. package/dist/src/terminal-list-facts.d.ts +5 -0
  49. package/dist/src/terminal-list-facts.js.map +1 -1
  50. package/dist/src/terminal-list-inventory.d.ts +1 -0
  51. package/dist/src/terminal-list-inventory.js +1 -0
  52. package/dist/src/terminal-list-inventory.js.map +1 -1
  53. package/dist/src/terminal-list-native-identity-recheck.d.ts +35 -0
  54. package/dist/src/terminal-list-native-identity-recheck.js +76 -0
  55. package/dist/src/terminal-list-native-identity-recheck.js.map +1 -0
  56. package/dist/src/terminal-monitor-decision-policy.d.ts +1 -1
  57. package/dist/src/terminal-permission-control-list-projection.d.ts +1 -1
  58. package/dist/src/terminal-runtime-cli-adapter.d.ts +1 -0
  59. package/dist/src/terminal-runtime-cli-adapter.js +4 -1
  60. package/dist/src/terminal-runtime-cli-adapter.js.map +1 -1
  61. package/dist/src/terminal-user-explicit-send-clear.d.ts +6 -12
  62. package/dist/src/terminal-user-explicit-send-clear.js +43 -64
  63. package/dist/src/terminal-user-explicit-send-clear.js.map +1 -1
  64. package/dist/src/terminal-user-explicit-send-policy.js +1 -0
  65. package/dist/src/terminal-user-explicit-send-policy.js.map +1 -1
  66. package/dist/src/terminal-watch-cli-adapter.js +7 -6
  67. package/dist/src/terminal-watch-cli-adapter.js.map +1 -1
  68. package/dist/src/terminal-watch-fallback-observation.d.ts +2 -1
  69. package/dist/src/terminal-watch-fallback-observation.js +52 -27
  70. package/dist/src/terminal-watch-fallback-observation.js.map +1 -1
  71. package/dist/src/terminal-watch-identity-evidence.d.ts +8 -0
  72. package/dist/src/terminal-watch-identity-evidence.js +36 -0
  73. package/dist/src/terminal-watch-identity-evidence.js.map +1 -0
  74. package/dist/src/terminal-watch-observation-adapter.js +5 -2
  75. package/dist/src/terminal-watch-observation-adapter.js.map +1 -1
  76. package/dist/src/terminal-watch-observation-evidence.d.ts +2 -1
  77. package/dist/src/terminal-watch-observation-evidence.js +10 -2
  78. package/dist/src/terminal-watch-observation-evidence.js.map +1 -1
  79. package/dist/src/terminal-watch-send-activity.d.ts +3 -3
  80. package/dist/src/terminal-watch-send-activity.js +12 -18
  81. package/dist/src/terminal-watch-send-activity.js.map +1 -1
  82. package/dist/src/terminal-watch-terminal-identity.d.ts +3 -2
  83. package/dist/src/terminal-watch-terminal-identity.js +60 -46
  84. package/dist/src/terminal-watch-terminal-identity.js.map +1 -1
  85. package/docs/bidirectional-agent-protocol.md +1 -1
  86. package/docs/claude-2.1.285-compatibility.md +72 -10
  87. package/docs/claude-cli-direct.md +57 -1
  88. package/docs/list-output.md +97 -1
  89. package/docs/operator-guide.md +81 -9
  90. package/docs/quickstart-herdr.md +1 -1
  91. package/docs/quickstart-tmux.md +20 -3
  92. package/docs/testing.md +1 -4
  93. package/package.json +1 -1
  94. package/templates/openclaw-skills/agent-knock-knock/SKILL.md +19 -7
@@ -2,6 +2,9 @@
2
2
  import { assertAutomaticActivityWatchIdentity } from "./terminal-watch-send-activity.js";
3
3
  import { createHash } from "node:crypto";
4
4
  import path from "node:path";
5
+ import { parseTerminalConversationId } from "./terminal-agent-adapter.js";
6
+ import { knownIdentityDifference, optionalObservation, optionalTerminalWorkspace, terminalWatchProcessEvidence } from "./terminal-watch-identity-evidence.js";
7
+ export { optionalTerminalWorkspace } from "./terminal-watch-identity-evidence.js";
5
8
  import { paginatedWatchProcessMatches } from "./codex-paginated-watch.js";
6
9
  import { rolloutFileIdentityMatches } from "./terminal-binding-authority.js";
7
10
  import { sameTerminalControlEvidenceIncarnation, terminalControlEvidence } from "./terminal-control-ref.js";
@@ -25,7 +28,7 @@ export function assertPreparedFallbackTerminal(prepared, observed) {
25
28
  throw new Error("terminal changed before the user-explicit fallback Watch was attached");
26
29
  }
27
30
  if (isTerminalActivityWatch(prepared)) {
28
- assertAutomaticActivityWatchIdentity(prepared.anchor, observed, terminalWorkspace(observed), prepared.terminalIdentity.workspace);
31
+ assertAutomaticActivityWatchIdentity(prepared.anchor, observed, optionalTerminalWorkspace(observed), prepared.terminalIdentity.workspace);
29
32
  }
30
33
  }
31
34
  export async function exactTerminalForWatch(terminalId, options, dependencies) {
@@ -189,33 +192,45 @@ export function terminalMatchesWatch(terminal, watch) {
189
192
  return false;
190
193
  }
191
194
  }
195
+ /** Compare known facts first; an unreadable fact is never evidence of replacement. */
196
+ function observedTerminalIdentityMatch(terminal, watch, expectedPid) {
197
+ const agent = optionalObservation(() => stringValue(terminal.agent));
198
+ const id = optionalObservation(() => stringValue(terminal.id));
199
+ const pid = optionalObservation(() => positiveInteger(terminal.pid, "terminal PID"));
200
+ if (knownIdentityDifference(agent, watch.agent) ||
201
+ knownIdentityDifference(id, watch.terminal.terminal_id) ||
202
+ (expectedPid !== undefined && pid !== undefined && pid !== expectedPid))
203
+ return "mismatch";
204
+ const workspace = optionalObservation(() => optionalTerminalWorkspace(terminal));
205
+ if (knownIdentityDifference(workspace, watch.terminal.workspace))
206
+ return "mismatch";
207
+ // Validate shape before interpreting a failed comparison as a different pane.
208
+ const evidence = optionalObservation(() => terminalControlEvidence(terminalControlForWatch(terminal)));
209
+ if (!evidence || evidence.process_anchor_pid == null)
210
+ return "unavailable";
211
+ if (!sameTerminalControlEvidenceIncarnation(evidence, watch.terminal.terminal_endpoint))
212
+ return "mismatch";
213
+ return !agent || !id || pid === undefined || expectedPid === undefined ||
214
+ workspace === undefined ? "unavailable" : "match";
215
+ }
216
+ function observedProcessIdentityMatch(terminal, expected, terminalMatch) {
217
+ if (terminalMatch === "mismatch")
218
+ return "mismatch";
219
+ const current = terminalWatchProcessEvidence(terminal);
220
+ if (knownIdentityDifference(current.uuid, expected.uuid) ||
221
+ knownIdentityDifference(current.birth, expected.birth))
222
+ return "mismatch";
223
+ return terminalMatch === "unavailable" ||
224
+ (expected.uuid !== undefined && current.uuid === undefined) ||
225
+ (expected.birth !== undefined && current.birth === undefined) ? "unavailable" : "match";
226
+ }
192
227
  export function terminalActivityWatchIdentityMatch(terminal, watch) {
193
228
  try {
194
- if (!isTerminalActivityWatch(watch) ||
195
- terminalAgent(terminal) !== watch.agent ||
196
- requiredString(terminal.id, "terminal id") !==
197
- watch.terminal.terminal_id ||
198
- terminalWorkspace(terminal) !== watch.terminal.workspace ||
199
- positiveInteger(terminal.pid, "terminal PID") !== watch.anchor.pid) {
200
- return "mismatch";
201
- }
202
- if (!isRecord(terminal.terminal_control)) {
203
- return "unavailable";
204
- }
205
- if (!sameTerminalControlEvidenceIncarnation(terminal.terminal_control, watch.terminal.terminal_endpoint)) {
206
- return "mismatch";
207
- }
208
- const processUuid = stringValue(terminal.native_agent_process_uuid);
209
- const processBirth = stringValue(terminal.native_agent_process_birth);
210
- if ((watch.anchor.native_process_uuid !== undefined && !processUuid) ||
211
- (watch.anchor.native_process_birth !== undefined && !processBirth)) {
229
+ if (!isTerminalActivityWatch(watch))
212
230
  return "unavailable";
213
- }
214
- return (watch.anchor.native_process_uuid !== undefined &&
215
- processUuid !== watch.anchor.native_process_uuid) || (watch.anchor.native_process_birth !== undefined &&
216
- processBirth !== watch.anchor.native_process_birth)
217
- ? "mismatch"
218
- : "match";
231
+ return observedProcessIdentityMatch(terminal, {
232
+ uuid: watch.anchor.native_process_uuid, birth: watch.anchor.native_process_birth
233
+ }, observedTerminalIdentityMatch(terminal, watch, watch.anchor.pid));
219
234
  }
220
235
  catch {
221
236
  return "unavailable";
@@ -223,35 +238,34 @@ export function terminalActivityWatchIdentityMatch(terminal, watch) {
223
238
  }
224
239
  export function terminalMatchesUserExplicitFallbackWatch(terminal, watch) {
225
240
  try {
226
- if (!isUserExplicitFallbackWatch(watch) ||
227
- terminalAgent(terminal) !== watch.agent ||
228
- requiredString(terminal.id, "terminal id") !==
229
- watch.terminal.terminal_id ||
230
- terminalWorkspace(terminal) !== watch.terminal.workspace ||
231
- !isRecord(terminal.terminal_control) ||
232
- !sameTerminalControlEvidenceIncarnation(terminal.terminal_control, watch.terminal.terminal_endpoint)) {
233
- return false;
234
- }
235
- if (watch.anchor.schema ===
236
- "agent-knock-knock/codex-user-explicit-fallback-watch-anchor") {
237
- return requiredString(terminal.native_agent_process_uuid, "Codex process UUID") === watch.anchor.acceptance_anchor.process_uuid &&
238
- requiredString(terminal.native_agent_process_birth, "Codex process birth") === watch.anchor.acceptance_anchor.process_birth;
239
- }
240
- return watch.anchor.schema ===
241
- "agent-knock-knock/claude-user-explicit-fallback-watch-anchor" &&
242
- positiveInteger(terminal.pid, "Claude PID") ===
243
- watch.anchor.transcript_anchor.pid;
241
+ if (!isUserExplicitFallbackWatch(watch))
242
+ return "unavailable";
243
+ const pid = watch.anchor.schema === "agent-knock-knock/claude-user-explicit-fallback-watch-anchor"
244
+ ? watch.anchor.transcript_anchor.pid : parseTerminalConversationId(watch.terminal.terminal_id)?.pid;
245
+ const match = observedTerminalIdentityMatch(terminal, watch, pid);
246
+ return watch.anchor.schema === "agent-knock-knock/codex-user-explicit-fallback-watch-anchor"
247
+ ? observedProcessIdentityMatch(terminal, { uuid: watch.anchor.acceptance_anchor.process_uuid,
248
+ birth: watch.anchor.acceptance_anchor.process_birth }, match)
249
+ : match;
244
250
  }
245
251
  catch {
246
- return false;
252
+ return "unavailable";
247
253
  }
248
254
  }
249
- export function terminalWatchIdentity(terminal, bindingToken) {
255
+ export function terminalWatchIdentity(terminal, bindingToken, anchor, warnings) {
250
256
  const terminalControl = terminal.terminal_control;
257
+ const activity = anchor?.schema === "agent-knock-knock/terminal-activity-watch-anchor";
258
+ const workspace = activity ? optionalTerminalWorkspace(terminal) : terminalWorkspace(terminal);
259
+ if (workspace === undefined)
260
+ throw new Error("terminal workspace unavailable: neither the agent process nor its terminal reports an absolute directory. " +
261
+ "No Watch was saved; refresh AKK list and retry Watch after the selected terminal's directory is available. " +
262
+ "If a task was already sent, inspect that window instead of resending the task.");
263
+ if (activity && (!anchor.native_process_uuid || !anchor.native_process_birth))
264
+ warnings?.push("process_incarnation_partially_unavailable: activity observation has incomplete process-generation evidence; exact task completion is not proven");
251
265
  return {
252
266
  terminal_id: requiredString(terminal.id, "terminal id"),
253
267
  terminal_endpoint: terminalControlEvidence(terminalControl),
254
- workspace: terminalWorkspace(terminal),
268
+ workspace,
255
269
  binding_token: bindingToken
256
270
  };
257
271
  }
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-watch-terminal-identity.js","sourceRoot":"","sources":["../../src/terminal-watch-terminal-identity.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,OAAO,EAAE,oCAAoC,EAAE,MAAM,mCAAmC,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAE1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAE7E,OAAO,EAEL,sCAAsC,EACtC,uBAAuB,EACxB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAM5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,cAAc,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAS5E,MAAM,UAAU,sCAAsC,CACpD,QAAyC,EACzC,QAAiC;IAEjC,IACE,cAAc,CAAC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC,KAAK,QAAQ,CAAC,cAAc;QACtE,aAAa,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,KAAK;QAC1C,eAAe,CAAC,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC,KAAK,QAAQ,CAAC,GAAG;QAC9D,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACpC,CAAC,sCAAsC,CACrC,QAAQ,CAAC,eAAe,EACxB,QAAQ,CAAC,gBAAiD,CAC3D,EACD,CAAC;QACD,MAAM,IAAI,KAAK,CACb,8EAA8E,CAC/E,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,QAA2C,EAC3C,QAAiC;IAEjC,IACE,cAAc,CAAC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC,KAAK,QAAQ,CAAC,UAAU;QAClE,aAAa,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,KAAK;QAC1C,eAAe,CAAC,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC,KAAK,QAAQ,CAAC,GAAG;QAC9D,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACpC,CAAC,sCAAsC,CACrC,QAAQ,CAAC,gBAAgB,EACzB,QAAQ,CAAC,gBAAiD,CAC3D,EACD,CAAC;QACD,MAAM,IAAI,KAAK,CACb,uEAAuE,CACxE,CAAC;IACJ,CAAC;IACD,IAAI,uBAAuB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,oCAAoC,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAC5D,iBAAiB,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,UAAkB,EAClB,OAAgC,EAChC,YAA0C;IAE1C,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,oBAAoB,CAAC;QAC1D,OAAO;QACP,UAAU;KACX,CAAC,CAAC;IACH,IAAI,WAAW,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,iEAAiE;YACjE,8CAA8C,CAC/C,CAAC;IACJ,CAAC;IACD,IAAI,WAAW,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,2BAA2B,UAAU,iBAAiB,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,oBAAoB,CAC3B,QAAiC;IAEjC,OAAO,cAAc,CACnB,QAAQ,CAAC,uBAAuB,EAChC,gCAAgC,CACjC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,QAAiC;IAEjC,IAAI,CAAC;QACH,OAAO,EAAE,KAAK,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,eAAe,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QAC1D,OAAO;YACL,KAAK,EAAE,MAAM,CAAC;gBACZ,MAAM,EAAE,sDAAsD;gBAC9D,OAAO,EAAE,CAAC;gBACV,WAAW,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;gBACvD,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC;gBAC9B,GAAG,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;gBAClD,QAAQ,EAAE,uBAAuB,CAAC,eAAe,CAAC;gBAClD,YAAY,EAAE,WAAW,CAAC,QAAQ,CAAC,yBAAyB,CAAC,IAAI,IAAI;gBACrE,aAAa,EAAE,WAAW,CAAC,QAAQ,CAAC,0BAA0B,CAAC,IAAI,IAAI;aACxE,CAAC;YACF,OAAO,EACL,iGAAiG;SACpG,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,QAAiC;IAEjC,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACnD,OAAO,KAAK,KAAK,mBAAmB,IAAI,KAAK,KAAK,SAAS;QACvD,KAAK,KAAK,MAAM;QAClB,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,KAAoB,EACpB,KAAmB,EACnB,QAAuC,EACvC,MAA2B;IAE3B,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;QAC9B,KAAK,CAAC,KAAK,KAAK,KAAK;QACrB,KAAK,CAAC,QAAQ,CAAC,WAAW,KAAK,QAAQ,CAAC,WAAW;QACnD,KAAK,CAAC,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;QAC/C,sCAAsC,CACpC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,EAChC,QAAQ,CAAC,iBAAiB,CAC3B;QACD,2BAA2B,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,2BAA2B,CAClC,IAAyB,EACzB,KAA0B;IAE1B,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,+CAA+C,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QACpG,OAAO,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IACD,IACE,IAAI,CAAC,MAAM;QACT,0DAA0D;QAC5D,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAC5B,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;YACnC,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY;YACxC,IAAI,CAAC,aAAa,KAAK,KAAK,CAAC,aAAa;YAC1C,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,OAAO,CAAC,MAAM;YAC5C,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IAC/C,CAAC;IACD,IACE,IAAI,CAAC,MAAM;QACT,2DAA2D;QAC7D,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAC5B,CAAC;QACD,OAAO,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IACD,IACE,IAAI,CAAC,MAAM,KAAK,kDAAkD;QAClE,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAC5B,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;YACjC,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY;YACxC,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG;YACtB,0BAA0B,CACxB,IAAI,CAAC,mBAAmB,EACxB,KAAK,CAAC,mBAAmB,CAC1B;YACD,0BAA0B,CACxB,IAAI,CAAC,oBAAoB,EACzB,KAAK,CAAC,oBAAoB,CAC3B,CAAC;IACN,CAAC;IACD,OAAO,IAAI,CAAC,kBAAkB,KAAK,KAAK,CAAC,kBAAkB,CAAC;AAC9D,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAA2G,EAC3G,KAAkB;IAEhB,OAAO,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW;QAC3C,0BAA0B,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC;QAC7D,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG;QACtB,IAAI,CAAC,mBAAmB,KAAK,KAAK,CAAC,mBAAmB;QACtD,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QAC5B,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC;AACjC,CAAC;AAED,SAAS,sBAAsB,CAAC,IAA8B,EAAE,KAA+B;IAC3F,OAAO,IAAI,CAAC,gBAAgB,KAAK,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;QACvF,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK,CAAC,aAAa;QACtF,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CAAC;AAC3E,CAAC;AAED,SAAS,0BAA0B,CACjC,IAAwB,EACxB,KAAyB;IAEzB,OAAO,IAAI,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,KAAK,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;QAC7D,oCAAoC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,QAAiC;IAEjC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,QAAQ,CAAC,gBAAiD,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,wCAAwC,CACtD,KAAoB,EACpB,QAAiC;IAEjC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACzD,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,+CAA+C,EAAE,CAAC;QAC5E,OAAO,4BAA4B,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;IAChE,IACE,KAAK,CAAC,MAAM,CAAC,MAAM;QACjB,0DAA0D,EAC5D,CAAC;QACD,OAAO,SAAS,EAAE,WAAW,EAAE,KAAK,KAAK,CAAC,MAAM,CAAC,gBAAgB;YAC/D,0BAA0B,CACxB,QAAQ,CAAC,oBAAoB,EAC7B,KAAK,CAAC,MAAM,CAAC,OAAO,CACrB,CAAC;IACN,CAAC;IACD,IACE,KAAK,CAAC,MAAM,CAAC,MAAM;QACjB,6DAA6D,EAC/D,CAAC;QACD,MAAM,UAAU,GAAG,KAAK,CAAC,sBAAsB,CAAC;QAChD,OAAO,QAAQ,IAAI,UAAU;YAC3B,UAAU,CAAC,MAAM;gBACf,iEAAiE;YACnE,UAAU,CAAC,iBAAiB,KAAK,SAAS;YAC1C,SAAS,EAAE,WAAW,EAAE,KAAK,UAAU,CAAC,iBAAiB,CAAC,gBAAgB;YAC1E,0BAA0B,CACxB,QAAQ,CAAC,oBAAoB,EAC7B,UAAU,CAAC,iBAAiB,CAAC,OAAO,CACrC,CAAC;IACN,CAAC;IACD,IACE,KAAK,CAAC,MAAM,CAAC,MAAM;QACjB,2DAA2D,EAC7D,CAAC;QACD,OAAO,SAAS,KAAK,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC;IAC/C,CAAC;IACD,IACE,KAAK,CAAC,MAAM,CAAC,MAAM;QACjB,8DAA8D,EAChE,CAAC;QACD,OAAO,SAAS,KAAK,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC;IACjE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,KAAoB,EACpB,OAAgC,EAChC,YAA0C;IAE1C,OAAO,YAAY,CAAC,oBAAoB,CAAC;QACvC,OAAO;QACP,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW;KACvC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,QAAiC,EACjC,KAAoB;IAEpB,IAAI,CAAC;QACH,OAAO,aAAa,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,KAAK;YAC5C,cAAc,CAAC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;gBACxC,KAAK,CAAC,QAAQ,CAAC,WAAW;YAC5B,iBAAiB,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,QAAQ,CAAC,SAAS;YACxD,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YACnC,sCAAsC,CACpC,QAAQ,CAAC,gBAAiD,EAC1D,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CACjC,CAAC;IACN,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAOD,MAAM,UAAU,kCAAkC,CAChD,QAAiC,EACjC,KAAoB;IAEpB,IAAI,CAAC;QACH,IACE,CAAC,uBAAuB,CAAC,KAAK,CAAC;YAC/B,aAAa,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,KAAK;YACvC,cAAc,CAAC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;gBACxC,KAAK,CAAC,QAAQ,CAAC,WAAW;YAC5B,iBAAiB,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,QAAQ,CAAC,SAAS;YACxD,eAAe,CAAC,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,GAAG,EAClE,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACzC,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,sCAAsC,CACzC,QAAQ,CAAC,gBAAiD,EAC1D,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CACjC,EAAE,CAAC;YACF,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;QACpE,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;QACtE,IACE,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC;YAChE,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,EAClE,CAAC;YACD,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,OAAO,CACL,KAAK,CAAC,MAAM,CAAC,mBAAmB,KAAK,SAAS;YAC9C,WAAW,KAAK,KAAK,CAAC,MAAM,CAAC,mBAAmB,CACjD,IAAI,CACH,KAAK,CAAC,MAAM,CAAC,oBAAoB,KAAK,SAAS;YAC/C,YAAY,KAAK,KAAK,CAAC,MAAM,CAAC,oBAAoB,CACnD;YACC,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,OAAO,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,aAAa,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wCAAwC,CACtD,QAAiC,EACjC,KAAoB;IAEpB,IAAI,CAAC;QACH,IACE,CAAC,2BAA2B,CAAC,KAAK,CAAC;YACnC,aAAa,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,KAAK;YACvC,cAAc,CAAC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;gBACxC,KAAK,CAAC,QAAQ,CAAC,WAAW;YAC5B,iBAAiB,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,QAAQ,CAAC,SAAS;YACxD,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YACpC,CAAC,sCAAsC,CACrC,QAAQ,CAAC,gBAAiD,EAC1D,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CACjC,EACD,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IACE,KAAK,CAAC,MAAM,CAAC,MAAM;YACjB,6DAA6D,EAC/D,CAAC;YACD,OAAO,cAAc,CACnB,QAAQ,CAAC,yBAAyB,EAClC,oBAAoB,CACrB,KAAK,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY;gBAC/C,cAAc,CACZ,QAAQ,CAAC,0BAA0B,EACnC,qBAAqB,CACtB,KAAK,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,aAAa,CAAC;QACvD,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM;YACtB,8DAA8D;YAChE,eAAe,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;gBACzC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,QAAiC,EACjC,YAAoB;IAEpB,MAAM,eAAe,GAAG,QAAQ,CAAC,gBAAsC,CAAC;IACxE,OAAO;QACL,WAAW,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;QACvD,iBAAiB,EAAE,uBAAuB,CAAC,eAAe,CAAC;QAC3D,SAAS,EAAE,iBAAiB,CAAC,QAAQ,CAAC;QACtC,aAAa,EAAE,YAAY;KAC5B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,QAAiC;IAEjC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IACD,OAAO;QACL,SAAS,EAAE,cAAc,CACvB,QAAQ,CAAC,uBAAuB,EAChC,wBAAwB,CACzB;QACD,WAAW,EAAE,cAAc,CACzB,QAAQ,CAAC,yBAAyB,EAClC,oBAAoB,CACrB;QACD,YAAY,EAAE,cAAc,CAC1B,QAAQ,CAAC,0BAA0B,EACnC,qBAAqB,CACtB;QACD,OAAO,EAAE;YACP,EAAE,EAAE,cAAc,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,EAAE,kBAAkB,CAAC;YACxE,MAAM,EAAE,cAAc,CACpB,QAAQ,CAAC,oBAAoB,CAAC,MAAM,EACpC,sBAAsB,CACvB;YACD,KAAK,EAAE,cAAc,CACnB,QAAQ,CAAC,oBAAoB,CAAC,KAAK,EACnC,qBAAqB,CACtB;YACD,IAAI,EAAE,cAAc,CAClB,QAAQ,CAAC,oBAAoB,CAAC,IAAI,EAClC,oBAAoB,CACrB;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,KAAoB;IAEpB,IACE,KAAK,CAAC,KAAK,KAAK,OAAO;QACvB,KAAK,CAAC,MAAM,CAAC,MAAM;YACjB,0DAA0D,EAC5D,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,gBAAgB;QACxC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;QACtC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa;QACxC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;KAC9B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAiC;IAC7D,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAiC;IACjE,MAAM,SAAS,GAAG,cAAc,CAC9B,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,GAAG,EAClC,oBAAoB,CACrB,CAAC;IACF,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACjD,IAAI,CAAC,oCAAoC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAc,EAAE,KAAa;IAC1D,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,cAAc,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAc,EAAE,KAAa;IAC1D,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CACb,GAAG,KAAK,4DAA4D,CACrE,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc,EAAE,KAAa;IAC7D,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,4BAA4B,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,KAAc;IAC1D,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;IAC5D,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,+BAA+B,cAAc,CAAC,KAAK,CAAC,EAAE,CACvD,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,KAAoB,EACpB,cAAuB;IAEvB,MAAM,SAAS,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;IAC9C,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,KAAK,CAAC,gBAAgB,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CACb,kBAAkB,KAAK,CAAC,QAAQ,wEAAwE,CACzG,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kCAAkC,CAChD,KAAoB,EACpB,aAAqB,EACrB,mBAA2B;IAE3B,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,CAAC,QAAQ,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,WAAW,GAAG,KAAK,CAAC,mBAAmB,CAAC;IAC9C,IACE,KAAK,CAAC,kBAAkB,KAAK,oBAAoB;QACjD,CAAC,WAAW;QACZ,WAAW,CAAC,SAAS,CAAC,KAAK,KAAK,SAAS;QACzC,WAAW,CAAC,UAAU,CAAC,cAAc,KAAK,aAAa;QACvD,WAAW,CAAC,UAAU,CAAC,kBAAkB,KAAK,mBAAmB;QACjE,WAAW,CAAC,UAAU,CAAC,kBAAkB,KAAK,YAAY;QAC1D,CAAC,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,EAC5C,CAAC;QACD,MAAM,IAAI,KAAK,CACb,6EAA6E,CAC9E,CAAC;IACJ,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc,EAAE,KAAa;IAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,6BAA6B,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc,EAAE,QAAgB;IAC9D,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"terminal-watch-terminal-identity.js","sourceRoot":"","sources":["../../src/terminal-watch-terminal-identity.ts"],"names":[],"mappings":"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"}
@@ -55,7 +55,7 @@ and session-only/new/resume and first-modal limits are described in the
55
55
  5. AKK sends a structured callback containing both `session_id` and `turn_id` to the originating Host session when it has reliable approval, completion, cancellation, stall, or failure evidence.
56
56
  6. After completion, refresh the terminal list. Another ordinary send through that row's current exact action creates a new Turn without clearing the native coding-agent context.
57
57
 
58
- Steps 2–6 describe managed delivery, which may require an exact empty Composer before input. For an advertised `terminal_user_explicit` Send, the selected live terminal/process and direct input-safety checks authorize the one physical Send; rollout, Session, Store, and callback state are sidecar management evidence rather than vetoes. Parsed working activity, an existing draft, and ordinary main-Composer visibility do not veto this user-priority path, but a blocked native approval or a proven input-owning questionnaire, editor, menu, or read-only viewer remains a zero-input boundary. Profiled Codex 0.154.0/0.155.1 exact collapsed async-question summaries remain sendable because the main Composer owns input; their expanded, clipped, or ambiguous async editors do not. Codex clears the current Composer once with `C-u`; Claude Code uses a sentinel-backed native `C-s` stash-clear transaction that is independent of the cursor position and does not interrupt an active turn, then proves the main Composer empty. Each then injects the request, waits through the paste window, and dispatches Enter exactly once. Codex also freezes the complete pre-send open-rollout inventory and scans those candidates together with newly opened roots after submission. One rollout that uniquely accepts the exact request hash is promoted to the managed Session/Turn; zero matches remain pending/unproven, while multiple matches or changed file/process authority become uncertain without replay. After either agent's text injection, no Composer observation may veto Enter.
58
+ Steps 2–6 describe managed delivery, which may require an exact empty Composer before input. For an advertised `terminal_user_explicit` Send, the selected live terminal/process and direct input-safety checks authorize the one physical Send; rollout, Session, Store, and callback state are sidecar management evidence rather than vetoes. For Codex, parsed working activity, an existing draft, and ordinary main-Composer visibility do not veto this user-priority path, but a blocked native approval or a proven input-owning questionnaire, editor, menu, or read-only viewer remains a zero-input boundary. Profiled Codex 0.154.0/0.155.1 exact collapsed async-question summaries remain sendable because the main Composer owns input; their expanded, clipped, or ambiguous async editors do not. Claude instead requires an empty recognized main Composer, no existing stashed draft, a known footer and no running or unproven foreground turn. Cross-Store authority conflicts remain fenced. Codex clears the current Composer once with `C-u`; Claude Code refuses an existing stashed draft before input. On a freshly empty main Composer it uses one `C-s` to check for a hidden stash; restored content stops task submission and remains for the user. It writes no sentinel and deletes no draft. Each then injects the request, waits through the paste window, and dispatches Enter exactly once. Codex also freezes the complete pre-send open-rollout inventory and scans those candidates together with newly opened roots after submission. One rollout that uniquely accepts the exact request hash is promoted to the managed Session/Turn; zero matches remain pending/unproven, while multiple matches or changed file/process authority become uncertain without replay. After either agent's text injection, no Composer observation may veto Enter.
59
59
 
60
60
  If managed preparation still fails before input, physical-terminal authority performs the same single Send and best-effort persists an exact request-bound Terminal Watch. That Watch supplies completion callbacks. Before exact native acceptance it remains notify-only; after acceptance it can emit an idempotent `interaction_required` wake-up and, through same-controller Status, expose one supported native-interaction response offer. Activity/best-effort or manual-only observations emit `interaction_manual_required` and require direct TUI input. Watch attachment failure is reported without changing or retrying the successful Send. Send output treats transport, native acceptance, management, and observation as separate facts through `terminal_input_dispatched`, `agent_acceptance`, `management_mode`, `observation_mode`, and `capabilities`; legacy delivery fields remain compatibility aliases. Once clear or request input may have occurred, an uncertain result must never be retried automatically.
61
61
 
@@ -116,18 +116,80 @@ approval/callback lifecycle, and real external notification delivery are not
116
116
  covered by this observation. Existing fast regressions remain distinct from native evidence. Unrecognized interaction shapes
117
117
  retain manual handling rather than gaining authority through version matching.
118
118
 
119
- A pre-existing explicit-Send issue was also observed: Claude automatically
120
- restores its `C-s` stash on request submission, including AKK's draft-replacement
121
- sentinel. This can leave ` [AKK replacing current draft]` in the Composer after
122
- successful Send and callback. It can block subsequent operations that require an
123
- empty Composer until the user clears the draft. The same native behavior exists
124
- in 2.1.266 and 2.1.282. This change does not redesign that clearing transaction or
125
- attempt asynchronous cleanup, which could erase newly entered user text. The
126
- lifecycle observations above start with an empty Composer after explicitly
127
- clearing only the owned probe's sentinel; they do not prove automatic recovery
128
- from this residue.
119
+ A pre-existing explicit-Send issue was also observed in this compatibility run:
120
+ Claude automatically restored its `C-s` stash on request submission, including
121
+ AKK's draft-replacement sentinel. This left ` [AKK replacing current draft]` in
122
+ the Composer after successful Send and callback and could block subsequent
123
+ operations that require an empty Composer. The same native behavior exists in
124
+ 2.1.266 and 2.1.282. The original compatibility change did not redesign that
125
+ clearing transaction. The lifecycle observations above start with an empty
126
+ Composer after explicitly clearing only the owned probe's sentinel; they do not
127
+ prove automatic recovery from this residue.
128
+
129
+ AKK 0.16.1 replaces the former marker/stash/erase transaction with existing-stash
130
+ refusal and one non-destructive restore probe, described below. The abandoned
131
+ local preview that attempted to consume and delete its own sentinel is not the
132
+ released implementation. Ordinary managed Sends, Codex and independent Watch
133
+ monitoring retain their existing behavior.
129
134
 
130
135
  Full, integration, and release suites were excluded from the initial local
131
136
  task under `AGENTS.md`. After the user successfully tested the installed
132
137
  combined candidate and authorized publication, the standard release gate was
133
138
  run separately; see the Codex 0.159.2 report.
139
+
140
+ ### Claude 2.1.295 physical footer compatibility
141
+
142
+ The native footer can show shell counts, `esc to interrupt`, `↓ to manage`,
143
+ and a right-aligned `Debug` label after `← for agents`. Physical Send accepts
144
+ only recognized native components, including wrapped rows and a separate
145
+ right-aligned stash indicator; unknown footer text still blocks before input.
146
+ A stash indicator is recognized as native footer syntax but blocks physical Send before input. `Draft restored` is a separate transient notification; an accompanying `› stashed` still reports a populated slot. The label is not proof of what the stash contains.
147
+
148
+ A shell count does not establish that Claude's foreground turn is idle.
149
+ Physical Send checks the foreground evidence independently and rejects a
150
+ running or unproven foreground turn. It also preserves an existing user draft:
151
+ the user must send, save, or clear it before a new physical Send. A completed
152
+ foreground turn with background shells and an empty recognized Composer can
153
+ remain eligible. These checks apply before task text; there is no Composer
154
+ observation, cleanup, or delivery veto after Enter.
155
+
156
+
157
+ ### Existing-stash refusal in AKK 0.16.1
158
+
159
+ Claude physical-input preparation finishes before task text or Enter. A visible `› stashed` indicator refuses the attempt before any terminal input. When no stash is shown, AKK rechecks the empty main Composer and uses `C-s` once to restore any hidden stash. If content appears, it stops and leaves that content in the input box for the user; it does not re-stash or delete it. If the probe or final empty check is uncertain, it stops without task text or Enter and does not retry the key. This replaces the former sentinel transaction: no new marker is written and no editing keys delete a draft. There is no Composer observation or cleanup after task text or Enter. Ordinary managed Sends, Codex clearing and independent Watch monitoring are unchanged. This is refusal with manual recovery, not a guarantee of protecting drafts against simultaneous human input; avoid typing in the pane during an attempt. Screen capture and key delivery are not an atomic keyboard lock. A transport acknowledgement cannot prove that Claude processed `Ctrl+S`; ignored keys or cropped native indicators can leave stash occupancy unproven. AKK does not overwrite that unknown slot with a marker.
160
+
161
+ If List or Send reports a stashed draft, open that exact window and wait for the foreground turn to finish. Preserve any visible draft first. With the main input box empty, press `Ctrl+S` once to restore the stash, then save, send, or clear it yourself before refreshing List. AKK cannot identify hidden content just from the stash label. If restoration reveals `[AKK replacing current draft ...]`, it may be residue from an older failed AKK cleanup: remove only that marker after checking the text, preserve any other content, and do not press Enter on the marker. `Draft restored` is a transient restore notification; an accompanying `› stashed` still reports an occupied slot and remains a refusal condition. Do not repeatedly toggle `Ctrl+S` or retry an uncertain AKK attempt automatically.
162
+
163
+
164
+ ### Shared notification-row correction in AKK 0.16.1
165
+
166
+ The earlier local preview validation covered separate stash-badge rows, but a later native
167
+ 2.1.295 observation showed the badge appended to another notification immediately
168
+ above the Composer:
169
+
170
+ ```text
171
+ new task? /clear to save 337.6k tokens · › stashed
172
+ ────────────────────────────────────────────────
173
+ ❯
174
+ ────────────────────────────────────────────────
175
+ ⏵⏵ bypass permissions on (shift+tab to cycle) · ← for agents
176
+ ```
177
+
178
+ The earlier whole-line badge matcher missed that occupied stash. Its passing fast
179
+ suite and prior live checks were insufficient for this real layout. AKK
180
+ 0.16.1 matches the badge at the end of the nearest notification row above
181
+ the current Composer, or at the end of a trailing row, rather than requiring
182
+ that the badge occupy the whole row. `Draft restored · new task? /clear to save
183
+ 337.6k tokens · › stashed` also refuses before input. The `/clear` hint without a
184
+ badge does not itself block Send; foreground, input-ownership and closed-footer
185
+ checks remain independent. Earlier history rows are not treated as current
186
+ stash evidence when a newer reply intervenes.
187
+
188
+ Action contract 35 and projection v4 remain unchanged: this is an implementation
189
+ fix for the already documented no-stash precondition. It does not remove the
190
+ concurrent-input or native-key acknowledgement limits described above. The native stash-and-restore sequence was verified on the office Claude 2.1.295 /
191
+ Herdr test setup and independently repeated by the user; transformed-screen
192
+ and zero-input Bridge cases are regression evidence, not additional live
193
+ sessions. See [PR #464](https://github.com/scotthuang/agent-knock-knock/pull/464).
194
+ The publishing machine runs the separate release gate; it does not repeat
195
+ those live actions in existing user sessions.
@@ -4,6 +4,8 @@ AKK controls an already-open Claude Code CLI through its native connection or an
4
4
 
5
5
  Starting with AKK **0.15.0**, new Claude Code sends automatically prefer a **managed terminal Turn** when AKK verifies a unique controllable tmux/Herdr counterpart for the exact native session and process. The result supplies a `turn_id` for monitoring and supported approvals or question responses; the caller does not select a transport or enable background management. Without that exact terminal, AKK uses the native inbox and returns a `claude-cli-watch:...` receipt. Codex CLI continues to prefer its shared backend. Existing Turns, Watches and send receipts retain their original provider and are never migrated or resent to adopt this policy.
6
6
 
7
+ An explicitly selected physical terminal is a separate existing operation. When List offers that terminal's `terminal_user_explicit` Send, call Send with its exact displayed `terminal_id` and request. AKK may enter text and submit Enter even when native conversation identity is unresolved, subject to the current terminal input-safety checks: an empty recognized main Composer, a known native footer, and no running or unproven foreground turn. Background shells alone do not block this physical Send. This does not prove native acceptance or completion and does not add background-worker protocol support. Ordinary managed sends never silently downgrade to physical input after failure, and callers do not pass a new scope or private token.
8
+
7
9
  Live observations include **Claude Code `2.1.295` and `2.1.296` on macOS**, using native peer protocol `1`. These are tested versions, not minimum versions or a promise that every UI variant works. An unlisted, complete `x.y.z` version can use the compatible runtime contracts; absence from the regression matrix alone does not disable an otherwise eligible operation. Discovery checks the running CLI's registry, native session UUID, PID/start time, and socket identity. Unknown identity, protocol or UI structure is not guessed.
8
10
 
9
11
  AKK uses a small **Python 3 helper on the controller side** to verify macOS Unix-socket peer credentials. Python 3 must be available to AKK. This is not installed into Claude Code and does not change its login, proxy, permissions, or settings. Other operating systems do not yet have this direct adapter; existing supported terminal routes remain available.
@@ -37,10 +39,64 @@ Keep the authenticated Claude Code CLI open and ask your controller to refresh `
37
39
 
38
40
  > Use AKK to ask Claude Code in my-project to inspect the failing tests. Tell me when it finishes.
39
41
 
40
- Save the task identity returned by Send: `turn_id` for managed terminal delivery, or `watch_id` for native inbox delivery. Monitoring starts automatically; do not add another Watch for that task. Use Status with that exact task identity for follow-up, including managed approvals. Conversation Status reads the latest input and must not replace the original task identity. For a task started manually in the CLI, explicitly ask the controller to Watch it.
42
+ For managed or native inbox delivery, save the task identity returned by Send: `turn_id` for managed terminal delivery, or `watch_id` for native inbox delivery. Monitoring starts automatically; do not add another Watch for that task. Use Status with that exact task identity for follow-up, including managed approvals. An explicitly selected physical Send reports its actual dispatch and observation evidence; without native identity, it cannot promise acceptance or completion monitoring. Conversation Status reads the latest input and must not replace the original task identity. For a task started manually in the CLI, explicitly ask the controller to Watch it.
41
43
 
42
44
  The usual `CLAUDE_CONFIG_DIR` is respected. For native inbox delivery, AKK does not modify Claude's inbound-message policy: if the session holds or refuses peer messages, the result remains held/refused rather than being bypassed with terminal input. Native busy Send is rejected because Claude can absorb an inbound message into the task already running.
43
45
 
46
+ ### When List offers different operations
47
+
48
+ List's per-conversation guidance explains the current usable operations and
49
+ recovery steps. An idle native conversation can accept Send without offering
50
+ Watch because there is no active task to observe. Send creates monitoring for
51
+ its own task. A working or waiting native conversation can offer Watch, whose
52
+ creation still requires an exact active input. Terminal activity observation is
53
+ a different, best-effort operation and may remain available on an unidentified
54
+ terminal.
55
+
56
+ If a Claude pane lacks verified identity, List requests one additional fresh
57
+ snapshot from the configured reader, shared across unresolved Claude panes in
58
+ that scan. It applies the same interactive-session and exact process, registry
59
+ and configuration-home checks. It never types into the terminal, promotes a
60
+ background agent, or substitutes a same-directory conversation. If the retry
61
+ cannot establish native identity, the row explains the missing proof and the
62
+ operations still offered, even when a more specific diagnostic is unavailable.
63
+ An independently offered physical Send may still accept terminal input. Follow the
64
+ actual action and its stated proof limits rather than interpreting missing
65
+ native identity as a blanket input prohibition.
66
+
67
+ The live investigation initially looked like a reader omission. The installed
68
+ Claude Code 2.1.295 runtime instead deliberately excludes a foreground registry
69
+ record carrying `parkedJobId` from `agents --json`; `--all` only adds completed
70
+ background jobs and does not remove that exclusion. A foreground window in the
71
+ Agents/background-session interface can display a conversation executed by a
72
+ separate `bg-spare` process. Its own registered session is therefore not proof
73
+ of the identity of the displayed conversation. This finding describes the
74
+ inspected installation, not a universal contract for every Claude release.
75
+
76
+ For an unresolved Claude terminal, AKK can explain this state using a bounded,
77
+ read-only check of the foreground process's owned registry, exact PID and live
78
+ process start identity. Positive evidence produces background-view guidance.
79
+ When that physical terminal offers Send, explicitly selecting it can enter text
80
+ and submit Enter; the result must still be checked in the window because native
81
+ acceptance and exact task completion are unproven. When Send is not offered,
82
+ continue manually in the current window, or start an ordinary foreground
83
+ conversation without attaching a background conversation, then refresh List.
84
+ Restarting and reopening the same background conversation does not change its
85
+ execution model. This is a display diagnosis only: AKK does not resolve the
86
+ background job or worker, access daemon or claim sockets, add a background
87
+ protocol delivery route, or promise exact background-task completion. The
88
+ background-view marker neither grants physical Send authority nor blocks an
89
+ otherwise valid physical input action.
90
+
91
+ Missing, unsafe, malformed, stale or unreadable evidence does not become a
92
+ background diagnosis. List retains the generic explanation that the current
93
+ conversation identity could not be confirmed, with the physical input option
94
+ when actually offered, or steps to inspect the pane, continue directly, and
95
+ retry ordinary startup/List refresh where appropriate.
96
+ Restarting remains an attempt, not a guaranteed repair. Background jobs remain
97
+ excluded from AKK's interactive conversation list, so scan counts are not a
98
+ count of every Claude process on the machine.
99
+
44
100
  ### Sender permission class
45
101
 
46
102
  For native inbox delivery, set `AKK_NATIVE_CLAUDE_SENDER_PERMISSION_CLASS` in the **AKK/controller Host's launch environment**, with `bypass` or `prompting`. AKK declares that value in the native `<cross-session-message from-mode="…">` envelope and escapes the supplied task text. Callers pass the plain task request; they do not construct the envelope. Managed terminal sends do not use this envelope. The declaration does not change the target's permissions or bypass its hold/refuse policy.
@@ -11,6 +11,100 @@ Use `agent_knock_knock_watches`, `/akk watches` or CLI `watches` to inspect
11
11
  monitoring. This is a read-only Store query: it does not create or renew a Watch,
12
12
  reconcile callbacks, reconnect a native session or send notifications.
13
13
 
14
+ ## Understanding a conversation row
15
+
16
+ Each conversation includes `usage`, a bounded explanation derived from its
17
+ current offered actions, activity, capabilities and blockers:
18
+
19
+ | Field | Meaning |
20
+ | --- | --- |
21
+ | `summary` | Whether the conversation can receive work or currently needs attention |
22
+ | `available` | What the user can do now |
23
+ | `limitations` | Why a relevant operation is unavailable, including uncertainty |
24
+ | `next_steps` | Concrete actions the user or controller can take next |
25
+
26
+ Controllers should present this guidance in the user's language, beside the
27
+ conversation title and project. A list of missing switches or internal reason
28
+ codes is not a substitute for explaining what to do. Guidance is regenerated
29
+ from each observation; it does not grant authority, add an action, or change
30
+ existing action eligibility. The current `available_actions` and their input
31
+ contracts remain authoritative. `usage` is an additive field within Host List
32
+ projection v4. Action contract v35 adds a no-existing-stash prerequisite to Claude physical Send. This narrows eligibility for an empty input box with a stashed draft, so the action contract increases from v34; it is not only a wording change. The per-agent Composer policy names and public Send parameters remain unchanged. Readiness diagnostics are additive, and compact projection remains v4.
33
+ The shared List projection adds this guidance to Codex CLI, Codex Desktop,
34
+ Claude and terminal-only rows. Existing identities, capabilities and action
35
+ offers retain their meanings; consumers may ignore the new display field.
36
+ The additional identity recheck and background-view diagnosis described below
37
+ apply only to Claude terminals, not to Codex discovery or dispatch.
38
+
39
+ Different rows can legitimately offer different next steps. An idle native
40
+ Claude conversation may accept Send without offering Watch: there is no active
41
+ task to attach that Watch to. Send starts monitoring for its new task, so keep
42
+ the returned Turn or Watch identity. A working native conversation can offer
43
+ Watch, with the exact active input revalidated when observation starts. A
44
+ terminal-only Watch can observe terminal activity; it does not establish an
45
+ exact native task or prove that task succeeded.
46
+
47
+ For an unresolved Claude terminal identity, List makes one additional fresh
48
+ reader check, shared across the unresolved Claude terminals in that scan. It
49
+ does not send terminal input or trust a registry file alone. If native identity
50
+ remains unproven, List retains that uncertainty and explains the currently
51
+ offered operations. A separately verified physical terminal Send can remain
52
+ available; a failed native identity check does not establish native acceptance
53
+ or completion, and does not by itself prove that terminal input is unsafe.
54
+
55
+ A Claude window can display a background conversation while its own foreground
56
+ conversation is parked. When a read-only check of that foreground process's
57
+ owned registry and current process incarnation verifies this state, guidance
58
+ explains that this window is in the background-session interface. This does not
59
+ make the window read-only. When its real `terminal_user_explicit` Send action
60
+ is offered, explicitly selecting that physical terminal lets AKK enter the
61
+ requested text and submit Enter. The guidance distinguishes input dispatch
62
+ from unproven native acceptance and completion, and asks the user to inspect
63
+ the execution result in the window. Without that physical action, the user can
64
+ continue manually or start an ordinary foreground conversation and refresh
65
+ List. Reopening the same background conversation does not make it an ordinary
66
+ foreground conversation.
67
+ The raw observation adds
68
+ `native_agent_identity_observation.window_role: "background_view"` only for
69
+ that positive diagnosis; compact Host output carries its explanation in `usage`.
70
+ This diagnosis does not identify or bind the background worker, inspect daemon
71
+ or claim sockets, or grant physical Send authority or exact-task monitoring.
72
+ Physical authority comes only from the current terminal action and its input
73
+ safety checks, not from the background-view marker.
74
+
75
+ If the registry check is missing, malformed, unsafe, stale or unavailable, List
76
+ does not infer a background session. It retains the generic explanation that
77
+ the native conversation identity could not be confirmed, together with the
78
+ actual physical Send option when offered, or instructions to inspect the pane,
79
+ use it manually, and retry ordinary startup and List refresh if appropriate.
80
+ Failure to diagnose never removes the guidance.
81
+ Relaunching is a recovery attempt, not a guaranteed repair.
82
+
83
+ Claude physical rows additionally expose `physical_send_readiness` from the
84
+ same current screen evidence used before input. An unsent user draft blocks
85
+ Send and tells the user to send, save or clear it manually. A running foreground
86
+ turn blocks Send until completion; an unproven running state asks the user to
87
+ wait and refresh. Background shells alone do not block Send when the main
88
+ Composer is empty and foreground completion can be verified. Unknown footer
89
+ controls or an unrecognized input box stop automatic input and explain what
90
+ AKK could not verify. These explanations take precedence over native-identity
91
+ uncertainty. Codex readiness and managed Send rules are unchanged.
92
+
93
+ To use an offered physical Send, select its displayed `terminal_id` and the
94
+ existing Send tool's semantic inputs. No new public scope or token parameter
95
+ is required. An ordinary managed Send does not silently switch to this route
96
+ after an identity, ownership, Store or submission failure; uncertain input must
97
+ never be replayed through a second route. A physical dispatch receipt proves
98
+ only the stages it reports. Terminal activity observation is not native task
99
+ acceptance or completion proof.
100
+
101
+ `managed.session_count` counts distinct related Sessions found through current
102
+ or historical managed records. It does not count valid current bindings. A
103
+ positive count with null `session_id` and `session_short_ref`, and no
104
+ `binding_status`, means no current authoritative Session was selected; it is not
105
+ evidence that List lost a binding. These historical associations do not authorize
106
+ Send or ownership recovery.
107
+
14
108
  ## Conversation selection
15
109
 
16
110
  Since 0.14.12 the default view prefers a verified backend as the project's CLI
@@ -63,7 +157,9 @@ Each Host page is capped at 24 KiB of UTF-8 JSON and 12,000 weighted characters
63
157
  (ASCII 1, other code points 16), including metadata. This is not a token budget.
64
158
  Oversized rows retain exact IDs and a Status entry point; omitted actions do not
65
159
  mean unsupported capabilities. Read exact Status for current questions, approvals
66
- and bounded public progress. List contains no progress body.
160
+ and bounded public progress. Their guidance explains that details were omitted
161
+ and directs the user to Status instead of claiming those operations are
162
+ unsupported. List contains no progress body.
67
163
 
68
164
  Desktop catalog pagination remains separate: finish Host pages for one catalog
69
165
  page, then pass `desktop_scan.next_cursor` as `desktopCursor` with the same filters