@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
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.16.2 / Pi 0.1.0-poc.10 / DeepSeek Harness 0.1.0-rc.13 — 2026-10-27
4
+
5
+ - Allow degraded terminal-activity Watch creation without optional native process UUID or birth metadata. Reuse Claude's independently observed physical OS birth when available, retain every captured process fence, and report incomplete evidence instead of claiming exact task completion. Do not mix OS birth with Claude's UTC process-start value or substitute UUID namespaces.
6
+ - Recover missing process workspace metadata from the selected terminal's absolute directory. Relative paths remain invalid, and a new Watch is still refused when neither source supplies an absolute workspace; no placeholder directory or new nullable persisted record is introduced.
7
+ - Distinguish matching identity, proven mismatch and temporarily unavailable evidence during fallback observation. Missing or throwing reads keep pending observation retryable; independently proven terminal, PID, endpoint, process-incarnation or directory changes still terminate it. Unknown evidence does not authorize interaction input.
8
+ - Preserve exact durable-completion precedence, task/request attribution, Store and callback ownership, deadlines and notification deduplication. Best-effort terminal activity remains notification-only. This release does not change recovery of already-existing exact Watches after a Host restart or notification outbox recovery.
9
+ - Retain action contract **35**, compact List **v4**, Watch schema **3**, Store writer protocol **11** and public tool parameter shapes.
10
+ - Release Pi **0.1.0-poc.10** and DeepSeek Harness **0.1.0-rc.13** with exact core **0.16.2** dependencies and synchronized Skills. Core uses `latest`; connectors remain prereleases on `next`, with unchanged Host compatibility requirements.
11
+
12
+ ## 0.16.1 / Pi 0.1.0-poc.9 / DeepSeek Harness 0.1.0-rc.12 — 2026-10-27
13
+
14
+ - Explain what each List entry can do, why input or monitoring is unavailable, and the applicable next step. Derive bounded usage guidance from current action offers, capabilities, activity and blockers; preserve it in compact and shortened rows without changing the overall Host response budget.
15
+ - Recheck unresolved Claude native identities once per List scan with a fresh reader snapshot. Explain verified foreground-window evidence separately from background workers and independently offered physical terminal input. Matching project directories or registry entries do not establish native task ownership or authorize input.
16
+ - Preserve an executable `terminal_user_explicit` Send on an explicitly selected terminal even when native identity is unresolved. Keep private authority, process identity and Store fences internal; native acceptance and completion remain unproven on this route. Ordinary managed failures never silently downgrade, and uncertain input is not replayed.
17
+ - Refuse Claude physical Send before input when a visible draft, occupied native stash, active foreground turn or unrecognized footer makes the Composer unsafe. Recognize the Claude 2.1.295 footer and inline `new task? /clear … · › stashed` notification. A shell count or empty prompt alone does not prove foreground completion.
18
+ - Remove the destructive sentinel/stash/erase preparation. After a fresh empty-Composer check, use at most one non-destructive `Ctrl+S` restore probe; stop without task text or Enter if content appears or the probe is uncertain, leaving the restored draft for manual handling. Do not clean up after task text or Enter. This is not an atomic keyboard lock or a guarantee against simultaneous human input or an unprocessed restore key; see the Claude compatibility notes.
19
+ - Advance the action contract to **35**; retain compact List projection **v4**, Store writer protocol **11**, public request parameters and ordinary managed Send behavior. Update recovery guidance and synchronized Skills.
20
+ - Release Pi **0.1.0-poc.9** and DeepSeek Harness **0.1.0-rc.12** with exact core **0.16.1** dependencies. Core remains on `latest`; both connectors remain on `next`, with unchanged Host compatibility requirements.
21
+
3
22
  ## 0.16.0 / Pi 0.1.0-poc.8 / DeepSeek Harness 0.1.0-rc.11 — 2026-10-26
4
23
 
5
24
  - Separate native-thread Store authority recovery (`transfer_store_authority`) from managed Session binding reconciliation (`reconcile_binding`), and expose the applicable recovery action consistently on native and terminal rows. Keep the runtime ledger globally shared so different Hosts cannot independently claim the same native thread; record absolute Store identity, Host identity, owner PID, process start identity and instance nonce.
@@ -13,13 +13,15 @@ tests, lockfile, bundle manifest, and connector-specific release tag.
13
13
 
14
14
  ## Compatibility
15
15
 
16
- This connector pins AKK **0.16.0** in its package and lockfile. It exposes
17
- that runtime's 27 semantic tools, including Codex CLI backend and Desktop
18
- operations when the selected conversation advertises them. `list` returns
19
- current discoverable conversations; `watches` separately returns recent
16
+ Connector **0.1.0-rc.13** pins AKK **0.16.2** in its package and lockfile,
17
+ including state-derived List guidance and degraded terminal-activity Watch
18
+ identity handling. It
19
+ exposes that runtime's 27 semantic tools, including Codex CLI backend and
20
+ Desktop operations when the selected conversation advertises them. `list`
21
+ returns current discoverable conversations; `watches` separately returns recent
20
22
  monitoring records (24 hours by default), plus active or unresolved records.
21
- A newer root checkout does not silently replace this pinned dependency.
22
- Connector `0.1.0-rc.11` pins core `0.16.0` and uses the `next` dist-tag.
23
+ A newer root checkout does not silently replace this pinned dependency. This
24
+ prerelease uses the `next` dist-tag.
23
25
 
24
26
  The development baseline is DeepSeek Harness **0.2.1-rc.2** with Cordis
25
27
  **4.0.5**. This is a release candidate, not a stable release; as checked on
@@ -77,7 +79,7 @@ can select an older `latest` build.
77
79
  DSH `0.2.1-rc.2` requires connector `0.1.0-rc.6` or a later release that
78
80
  explicitly supports that Host. Connector `0.1.0-rc.5` does not support this RC.
79
81
  Use `next`, or pin
80
- `@scotthuang/agent-knock-knock-deepseek-harness@0.1.0-rc.11`.
82
+ `@scotthuang/agent-knock-knock-deepseek-harness@0.1.0-rc.13`.
81
83
 
82
84
  ```sh
83
85
  dsh plugin --profile web add @scotthuang/agent-knock-knock-deepseek-harness@next
@@ -366,7 +368,7 @@ exact reviewed version:
366
368
 
367
369
  ```sh
368
370
  dsh plugin --profile web add @scotthuang/agent-knock-knock-deepseek-harness@next
369
- dsh plugin --profile web add @scotthuang/agent-knock-knock-deepseek-harness@0.1.0-rc.11
371
+ dsh plugin --profile web add @scotthuang/agent-knock-knock-deepseek-harness@0.1.0-rc.13
370
372
  ```
371
373
 
372
374
  Restart the Web Host after either operation. The connector pins the exact AKK
@@ -394,7 +396,7 @@ dsh plugin --profile web add "file:$(pwd -P)/connectors/deepseek-harness"
394
396
  ```
395
397
 
396
398
  Restart `dsh web` after installation. The child package currently installs and
397
- tests against its pinned AKK runtime `0.16.0`; building the current repository
399
+ tests against its pinned AKK runtime `0.16.2`; building the current repository
398
400
  root does not silently replace that dependency. Before core publication, test
399
401
  the candidate core tarball in isolation as described in the
400
402
  [coordinated release policy](../../CONTRIBUTING.md#coordinated-package-releases);
@@ -405,6 +407,30 @@ compatibility review rather than an implicit local link.
405
407
 
406
408
  ## Tests and release status
407
409
 
410
+ Connector **`0.1.0-rc.13`** pins AKK **`0.16.2`** and its synchronized Skill.
411
+ Degraded terminal-activity Watches tolerate absent optional process UUID/birth
412
+ metadata. A proven identity change still invalidates the observation; temporarily
413
+ unavailable evidence remains unknown and retryable. A missing process working
414
+ directory may use the absolute path from the same selected terminal, never a
415
+ same-project candidate. These changes preserve exact-task, Store, input and
416
+ callback ownership boundaries. They do not fix exact-Watch recovery after a Host
417
+ restart, callback outbox recovery, or persistence when no workspace is known.
418
+ DSH Host compatibility is unchanged. This dependency refresh adds no new live
419
+ model or external-channel acceptance claim and remains on npm `next`.
420
+
421
+ Connector **`0.1.0-rc.12`** pins AKK **`0.16.1`** and its synchronized Skill.
422
+ List adds bounded guidance derived from each conversation's current state and
423
+ a single read-only recheck for unresolved Claude identity. Claude physical
424
+ fallback requires an empty recognized Composer, no visible stash and no active
425
+ or unproven foreground turn. A single empty-Composer restore probe stops if it
426
+ reveals content; no sentinel or draft-deletion transaction runs. Shared
427
+ notification/footer stash layouts are covered by fixtures, not a new live DSH
428
+ acceptance claim. Managed Send, Codex routing, Store writer protocol **11** and
429
+ List projection **v4** remain unchanged; action contract advances to **35**.
430
+ The DSH Host/peer policy, independent Store and callback ownership remain
431
+ unchanged. This dependency refresh does not repeat the historical live-model
432
+ or external-channel delivery acceptance below. It remains on npm `next`.
433
+
408
434
  Connector **`0.1.0-rc.11`** pins exact AKK **`0.16.0`** and bundles
409
435
  its synchronized Skill. Core separates managed binding reconciliation from
410
436
  native Store authority transfer, records Store owner process identities, and
@@ -467,7 +493,7 @@ npm run pack:check
467
493
 
468
494
  These commands typecheck the connector, run its fast wiring/profile/IPC/schema
469
495
  tests, and inspect the package tarball. They do not publish anything. The
470
- `0.1.0-rc.11` lockfile uses the published DeepSeek Harness `0.2.1-rc.2`
496
+ `0.1.0-rc.13` lockfile uses the published DeepSeek Harness `0.2.1-rc.2`
471
497
  SDK packages and Cordis `4.0.5`. Its real ToolRuntime regression checks
472
498
  canonical result rendering, exact Agent ownership, typed questionnaire payloads,
473
499
  and rejection before dispatch when targets are ambiguous or stale. This is
@@ -512,7 +538,7 @@ gate to both connectors. Their package versions are validated independently.
512
538
  Publishing additionally requires both explicit flags:
513
539
 
514
540
  ```sh
515
- npm run release:check -- --publish --confirm-version 0.1.0-rc.11
541
+ npm run release:check -- --publish --confirm-version 0.1.0-rc.13
516
542
  ```
517
543
 
518
544
  Prereleases use npm tag `next`; stable versions use `latest`. Repository tags
@@ -12,13 +12,13 @@ socket.
12
12
 
13
13
  ## Status and compatibility
14
14
 
15
- This connector pins AKK **0.16.0**, including CLI direct connections, Codex
16
- Desktop, and Recovery. Its generated Skill and registered tools are verified
15
+ Connector **0.1.0-poc.10** pins AKK **0.16.2**, including CLI direct
16
+ connections, Codex Desktop, Recovery, state-derived List guidance and degraded
17
+ terminal-activity Watch identity handling. Its generated Skill and registered tools are verified
17
18
  against that exact core package at startup. See the [root compatibility
18
19
  summary](../../README.md#compatibility) for the coding-agent versions and
19
20
  operation-specific limits. Updating AKK core elsewhere does not update this
20
- connector's pinned dependency. Connector `0.1.0-poc.8` pins core `0.16.0`
21
- and uses the `next` dist-tag.
21
+ connector's pinned dependency. This prerelease uses the `next` dist-tag.
22
22
 
23
23
  This is a POC prerelease distributed on npm as
24
24
  `@scotthuang/agent-knock-knock-pi`. Prereleases use the `next` dist-tag;
@@ -34,8 +34,7 @@ The current compatibility contract is intentionally exact:
34
34
  supported older runtime, installed from the official
35
35
  `@earendil-works/pi-coding-agent` package.
36
36
  - Node.js `22.19.0` or newer.
37
- - AKK `0.16.0`, pinned by this connector's package and lockfile. Running
38
- `npm ci` in `connectors/pi` installs that exact AKK runtime; a different
37
+ - AKK `0.16.2`, pinned by this connector's package and lockfile. A different
39
38
  version at the repository root is not substituted automatically. Before core
40
39
  publication, test its candidate tarball in isolation under the
41
40
  [coordinated release policy](../../CONTRIBUTING.md#coordinated-package-releases).
@@ -87,8 +86,8 @@ pi list
87
86
  ```
88
87
 
89
88
  Using `next` follows compatible Pi connector prereleases. To pin this exact
90
- build, install
91
- `npm:@scotthuang/agent-knock-knock-pi@0.1.0-poc.8`; exact versions are pinned
89
+ core `0.16.2` connector, install
90
+ `npm:@scotthuang/agent-knock-knock-pi@0.1.0-poc.10`; exact versions are pinned
92
91
  and are not advanced by Pi's bulk update command.
93
92
 
94
93
  ### 4. Start Pi
@@ -453,7 +452,7 @@ Harness independently; it does not require their package versions to match.
453
452
  Publishing Pi additionally requires explicit version confirmation:
454
453
 
455
454
  ```sh
456
- npm run release:check -- --publish --confirm-version 0.1.0-poc.8
455
+ npm run release:check -- --publish --confirm-version 0.1.0-poc.10
457
456
  ```
458
457
 
459
458
  Prereleases use npm tag `next`; stable versions use `latest`. Tags and GitHub
@@ -503,6 +502,29 @@ a presentation change, not evidence that a candidate is disconnected, and it
503
502
  does not change Send routing or callback ownership. Sole empty conversations
504
503
  and exact frontend associations remain visible.
505
504
 
505
+ Connector **`0.1.0-poc.10`** pins AKK **`0.16.2`** and its synchronized Skill.
506
+ Degraded terminal-activity Watches tolerate absent optional process UUID/birth
507
+ metadata. A proven identity change still invalidates the observation; temporarily
508
+ unavailable evidence remains unknown and retryable. A missing process working
509
+ directory may use the absolute path from the same selected terminal, never a
510
+ same-project candidate. These changes preserve exact-task, Store, input and
511
+ callback ownership boundaries. They do not fix exact-Watch recovery after a Host
512
+ restart, callback outbox recovery, or persistence when no workspace is known.
513
+ Pi Host compatibility is unchanged. This dependency refresh adds no new live
514
+ model or external-channel acceptance claim and remains on npm `next`.
515
+
516
+ Connector **`0.1.0-poc.9`** pins AKK **`0.16.1`** and its synchronized Skill.
517
+ List adds bounded guidance derived from each conversation's current state and
518
+ a single read-only recheck for unresolved Claude identity. Claude physical
519
+ fallback requires an empty recognized Composer, no visible stash and no active
520
+ or unproven foreground turn. A single empty-Composer restore probe stops if it
521
+ reveals content; no sentinel or draft-deletion transaction runs. Shared
522
+ notification/footer stash layouts are covered by fixtures, not a new live Pi
523
+ acceptance claim. Managed Send, Codex routing, Store writer protocol **11** and
524
+ List projection **v4** remain unchanged; action contract advances to **35**.
525
+ Pi Host compatibility and callback ownership are unchanged. No new live-model
526
+ or external-channel delivery result is claimed; this connector remains on `next`.
527
+
506
528
  Connector **`0.1.0-poc.8`** pins exact AKK **`0.16.0`** and bundles
507
529
  its synchronized Skill. Core separates managed binding reconciliation from
508
530
  native Store authority transfer, records Store owner process identities, and
@@ -536,8 +558,8 @@ or external-channel delivery run.
536
558
 
537
559
  These are POC acceptance results, not a promise of compatibility with every
538
560
  future Pi, Codex, Claude Code, tmux, or Herdr release. Version
539
- `0.1.0-poc.8` is an npm prerelease distributed through the `next` dist-tag;
540
- its publication is coordinated with core `0.16.0` and the DSH connector.
561
+ `0.1.0-poc.10` is an npm prerelease distributed through the `next` dist-tag;
562
+ its publication is coordinated with core `0.16.2` and the DSH connector.
541
563
  ClawHub publication remains a separate channel.
542
564
 
543
565
  ## Deliberate POC limits
@@ -10,6 +10,8 @@ export type ClaudeManagedSendRoute = {
10
10
  };
11
11
  /** Preserve physical proof while applying Store eligibility from that scan's public action projection. */
12
12
  export declare function withClaudeManagedSendAuthority(raw: Row, projected: Row | undefined, writable: boolean): Row;
13
+ /** A current physical offer already includes process, input-owner and questionnaire checks. */
14
+ export declare function claudeUserExplicitTerminalSendOffer(row: Row): Row | undefined;
13
15
  /** The physical Send token remains required; managed execution must never fall back to an unmanaged send. */
14
16
  export declare function claudeManagedTerminalSendBlockReason(row: Row): string | undefined;
15
17
  /** Absence permits native Send. A discovered physical counterpart with conflicting identity or state does not. */
@@ -18,6 +18,20 @@ function controlledClaudeTerminal(row) {
18
18
  && parseTerminalConversationId(String(row.id))?.agent === "claude"
19
19
  && Array.isArray(control?.capabilities) && control.capabilities.includes("send_keys");
20
20
  }
21
+ /** A current physical offer already includes process, input-owner and questionnaire checks. */
22
+ export function claudeUserExplicitTerminalSendOffer(row) {
23
+ const approval = recordValue(row.approval_state);
24
+ const authority = recordValue(row.native_store_authority);
25
+ if (!controlledClaudeTerminal(row) || approval?.scanned !== true || approval.blocked !== false
26
+ || recordValue(row.physical_send_readiness)?.ready === false
27
+ || ["conflict", "transferring"].includes(String(authority?.state)))
28
+ return undefined;
29
+ const send = recordValue(recordValue(row.available_actions)?.send);
30
+ const args = recordValue(send?.arguments);
31
+ return send?.tool === "agent_knock_knock_send" && send.scope === "terminal_user_explicit"
32
+ && (args?.selector ?? args?.terminal_id) === row.id && nonBlankString(args?.expected_terminal_token)
33
+ ? send : undefined;
34
+ }
21
35
  /** The physical Send token remains required; managed execution must never fall back to an unmanaged send. */
22
36
  export function claudeManagedTerminalSendBlockReason(row) {
23
37
  if (!controlledClaudeTerminal(row))
@@ -1 +1 @@
1
- {"version":3,"file":"claude-managed-send-route.js","sourceRoot":"","sources":["../../src/claude-managed-send-route.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-managed-send-route.js","sourceRoot":"","sources":["../../src/claude-managed-send-route.ts"],"names":[],"mappings":"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"}
@@ -10,5 +10,7 @@ export interface ClaudeTerminalAgentObservation {
10
10
  export declare function claudeTerminalObservationFailure(result: ClaudeTerminalAgentObservation): string;
11
11
  /** Static fixtures never gain registry authority from caller-supplied metadata. */
12
12
  export declare function normalizeClaudeAgentRows(rows: readonly unknown[]): ClaudeAgentRow[];
13
+ /** Unknown and conflicting roots keep generic guidance; this never bypasses reader authority. */
14
+ export declare function claudeTerminalWindowRole(options: Readonly<Record<string, unknown>>, pid: number, cwd?: string): "background_view" | undefined;
13
15
  /** Never infer a session directory from the reader's install layout. */
14
16
  export declare function readClaudeTerminalAgents(options: Readonly<Record<string, unknown>>): ClaudeTerminalAgentObservation;
@@ -5,7 +5,7 @@ import { spawnSync } from "node:child_process";
5
5
  import { resolveExecutable } from "./cli-command-runtime.js";
6
6
  import { cliEnv, cliRuntimeLog } from "./cli-runtime-context.js";
7
7
  import { claudeReaderConfiguration, claudeReaderDiagnostic, claudeReaderNextAction } from "./claude-reader-configuration.js";
8
- import { observeClaudeTerminalRegistry } from "./claude-terminal-registry-observation.js";
8
+ import { observeClaudeTerminalRegistry, observeClaudeTerminalWindow } from "./claude-terminal-registry-observation.js";
9
9
  import { isRecord, nonBlankString } from "./value-guards.js";
10
10
  export function claudeTerminalObservationFailure(result) {
11
11
  const reader = result.reader ? `; reader=${JSON.stringify(result.reader.executable)} source=${result.reader.source}` : "";
@@ -35,6 +35,23 @@ function canonicalRoot(root) {
35
35
  return root;
36
36
  }
37
37
  }
38
+ /** Unknown and conflicting roots keep generic guidance; this never bypasses reader authority. */
39
+ export function claudeTerminalWindowRole(options, pid, cwd) {
40
+ if (["processesJson", "terminalsJson", "terminalScreensJson", "claudeAgentsJson"]
41
+ .some(key => options[key] !== undefined))
42
+ return undefined;
43
+ try {
44
+ const roots = [...new Set(claudeReaderConfiguration(options).configDirs.map(canonicalRoot))];
45
+ const observations = roots.map(configDir => observeClaudeTerminalWindow({ configDir, pid, cwd }));
46
+ if (observations.some(observation => observation.state === "invalid"))
47
+ return undefined;
48
+ const verified = observations.filter(observation => observation.state === "verified");
49
+ return verified.length === 1 && verified[0].role === "background_view" ? "background_view" : undefined;
50
+ }
51
+ catch {
52
+ return undefined;
53
+ }
54
+ }
38
55
  function resolveReader(reader) {
39
56
  try {
40
57
  const executable = resolveExecutable(reader);
@@ -1 +1 @@
1
- {"version":3,"file":"claude-terminal-agent-observation.js","sourceRoot":"","sources":["../../src/claude-terminal-agent-observation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-terminal-agent-observation.js","sourceRoot":"","sources":["../../src/claude-terminal-agent-observation.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,18 @@ export type ClaudeTerminalRegistryObservation = {
21
21
  state: "invalid";
22
22
  reason: "invalid_identity" | "unsafe_metadata" | "invalid_registry" | "conflicting_rows" | "registry_mismatch" | "process_changed" | "registry_unavailable";
23
23
  };
24
+ export type ClaudeTerminalWindowObservation = {
25
+ state: "verified";
26
+ role: "background_view" | "ordinary";
27
+ } | Exclude<ClaudeTerminalRegistryObservation, {
28
+ state: "verified";
29
+ }>;
30
+ /** Foreground display evidence only: never returns a session, job, socket or send authority. */
31
+ export declare function observeClaudeTerminalWindow(input: {
32
+ configDir: string;
33
+ pid: number;
34
+ cwd?: string;
35
+ }): ClaudeTerminalWindowObservation;
24
36
  /** Read-only version/root evidence; this does not verify a native socket or authorize sending. */
25
37
  export declare function observeClaudeTerminalRegistry(input: {
26
38
  configDir: string;
@@ -97,6 +97,38 @@ function assertCurrentProcess(identity) {
97
97
  throw new RegistryError("process_changed");
98
98
  }
99
99
  }
100
+ function verifiedWindowRole(registry, pid, cwd) {
101
+ if (registry.pid !== pid || registry.kind !== "interactive" || !absolute(registry.cwd)
102
+ || realpathSync(registry.cwd) !== realpathSync(cwd)
103
+ || (registry.pidDomain !== undefined && registry.pidDomain !== process.platform)) {
104
+ throw new RegistryError("registry_mismatch");
105
+ }
106
+ const processStart = typeof registry.procStart === "string" ? registry.procStart.trim().replace(/\s+/gu, " ") : "";
107
+ assertCurrentProcess({ pid, processStart });
108
+ if (registry.parkedJobId !== undefined && (!statusShape(registry.parkedJobId)
109
+ || !registry.parkedJobId.trim()))
110
+ throw new RegistryError("invalid_registry");
111
+ return registry.parkedJobId === undefined ? "ordinary" : "background_view";
112
+ }
113
+ /** Foreground display evidence only: never returns a session, job, socket or send authority. */
114
+ export function observeClaudeTerminalWindow(input) {
115
+ if (!absolute(input.configDir) || !Number.isSafeInteger(input.pid) || input.pid < 1 || !absolute(input.cwd)) {
116
+ return { state: "invalid", reason: "invalid_identity" };
117
+ }
118
+ try {
119
+ const registry = readRegistry(realpathSync(input.configDir), input.pid);
120
+ return { state: "verified", role: verifiedWindowRole(registry, input.pid, input.cwd) };
121
+ }
122
+ catch (error) {
123
+ if (error instanceof RegistryError)
124
+ return { state: "invalid", reason: error.reason };
125
+ if (error instanceof SyntaxError)
126
+ return { state: "invalid", reason: "invalid_registry" };
127
+ if (error?.code === "ENOENT")
128
+ return { state: "absent" };
129
+ return { state: "invalid", reason: "registry_unavailable" };
130
+ }
131
+ }
100
132
  /** Read-only version/root evidence; this does not verify a native socket or authorize sending. */
101
133
  export function observeClaudeTerminalRegistry(input) {
102
134
  if (!absolute(input.configDir) || !Number.isSafeInteger(input.pid) || input.pid < 1) {
@@ -1 +1 @@
1
- {"version":3,"file":"claude-terminal-registry-observation.js","sourceRoot":"","sources":["../../src/claude-terminal-registry-observation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-terminal-registry-observation.js","sourceRoot":"","sources":["../../src/claude-terminal-registry-observation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export interface ClaudeUserExplicitReadiness {
2
+ readonly ready: boolean;
3
+ readonly reason?: "foreground_running" | "foreground_unproven" | "composer_not_empty" | "composer_unrecognized" | "footer_unrecognized" | "stash_not_empty" | "cleanup_marker_present";
4
+ readonly message?: string;
5
+ }
6
+ /** Physical Claude input proof only. Managed input and Codex retain their own policies. */
7
+ export declare function claudeUserExplicitReadiness(screen: string | undefined, options?: {
8
+ allowDraft?: boolean;
9
+ }): ClaudeUserExplicitReadiness;
@@ -0,0 +1,90 @@
1
+ import { exactClaudeComposerFrame, stripTerminalEscapeSequences } from "./terminal-native-inspection-proof.js";
2
+ const STASH_BADGE_SUFFIX = /›\s+stashed\s*$/u;
3
+ const CLEAR_HINT = /^\s*(?:Draft restored\s*·\s*)?new task\? \/clear to save \d+(?:\.\d)?[kmbt]? tokens\s*$/u;
4
+ const STASH = /\s+(?:Draft restored\s*·\s*)?› stashed\s*$/u;
5
+ const AUXILIARY = /^(?:(?:Draft restored\s*·\s*)?› stashed|[●○◐◉]\s+(?:low|medium|high|xhigh|max|ultracode)\s*·\s*\/effort)$/iu;
6
+ const MODE = /^(?:[⏵⏴⏸]{1,2}\s+(?:manual mode|auto mode|accept edits|bypass permissions|plan mode|don't ask) on(?:\s+\(shift\+tab to cycle\))?|\? for shortcuts)$/u;
7
+ const HINT = /^(?:\? for shortcuts|[1-9]\d* shells?|esc to interrupt|← for (?:agents|ag…)|(?:↓ to manage|\(↓ to manage\)))$/u;
8
+ // Native 2.1.295 spinner frames include the middle dot and reduced-motion dot.
9
+ const SPINNER = /^\s*[·✢✳✶✻✽●✣✤✥✦✧]\s+.+(?:…|\.\.\.)(?:\s+\([^)]*\))?\s*$/u;
10
+ const COMPLETED = /^\s*[·✢✳✶✻✽●✣✤✥✦✧]\s+(?:Baked|Brewed|Churned|Cogitated|Cooked|Crunched|Sautéed|Worked) for \d+(?:\.\d+)?(?:ms|s|m|h)(?: \d+(?:\.\d+)?(?:ms|s|m|h))*(?: · done \d{1,2}:\d{2}(?:[ \u202f]+[AP]M)?)?(?: · [1-9]\d* shells? still running)?\s*$/u;
11
+ /** Closed native vocabulary; joining wrapped rows never licenses unknown text. */
12
+ function knownFooter(lines) {
13
+ const rows = lines.map(line => line.trim()).filter(line => !AUXILIARY.test(line));
14
+ if (rows.length === 0)
15
+ return true;
16
+ if (rows.length > 4)
17
+ return false;
18
+ const footer = rows.join(" ").replace(STASH, "").replace(/\s+Debug\s*$/u, "")
19
+ .replace(STASH, "").replace(/\s+/gu, " ").trim();
20
+ const [mode, ...hints] = footer.split(/\s*·\s*/u);
21
+ return MODE.test(mode ?? "") && hints.every(hint => HINT.test(hint));
22
+ }
23
+ /** Footer esc can outlive foreground work; it is not, by itself, idle evidence. */
24
+ function foregroundFailure(lines, interruptHint) {
25
+ const tail = lines.filter(line => line.trim()).slice(-12);
26
+ const spinner = tail.reduce((last, line, index) => SPINNER.test(line) ? index : last, -1);
27
+ const completed = tail.reduce((last, line, index) => COMPLETED.test(line) ? index : last, -1);
28
+ const afterSpinner = tail.slice(spinner + 1).map(line => line.trim()).join(" ").replace(/\s+/gu, " ");
29
+ const currentSpinner = spinner > completed && (afterSpinner === "" ||
30
+ /^⎿ Tip: Use \/btw to ask a quick side question without interrupting Claude['’]s current work$/u.test(afterSpinner));
31
+ if (currentSpinner)
32
+ return {
33
+ ready: false, reason: "foreground_running",
34
+ message: "Claude is still running its foreground turn; wait for it to finish, then refresh and retry. No task text was sent."
35
+ };
36
+ const unresolvedSpinner = spinner > completed && !tail.slice(spinner + 1).some(line => /^\s*[⏺❯]\s+\S/u.test(line));
37
+ if (unresolvedSpinner || interruptHint && (completed < 0 || completed !== tail.length - 1))
38
+ return {
39
+ ready: false, reason: "foreground_unproven",
40
+ message: "Claude shows an interrupt hint or an unrecognized working-status layout, but the current foreground turn has no visible completion proof. Background shell counts alone do not prove it idle; wait for the turn to finish and retry."
41
+ };
42
+ return undefined;
43
+ }
44
+ /** Physical Claude input proof only. Managed input and Codex retain their own policies. */
45
+ export function claudeUserExplicitReadiness(screen, options = {}) {
46
+ const frame = exactClaudeComposerFrame(stripTerminalEscapeSequences(screen ?? ""));
47
+ if (!frame || !/^\s*❯(?:\s|$)/u.test(frame.composerRows[0] ?? ""))
48
+ return {
49
+ ready: false, reason: "composer_unrecognized",
50
+ message: "Claude main Composer frame is missing or clipped; return to the complete main prompt and retry."
51
+ };
52
+ // The toast describes a past pop; the stash badge describes the current slot.
53
+ // Native hints (including /clear) can precede the badge on the same row.
54
+ // Check the suffix in either current location before validating other footer text.
55
+ // Its absence is not proof: Claude can hide its notification area.
56
+ const currentBody = frame.lines.slice(0, frame.openIndex).filter(line => line.trim());
57
+ const aboveComposer = currentBody.at(-1) ?? "";
58
+ if ([aboveComposer, ...frame.trailing].some(line => STASH_BADGE_SUFFIX.test(line)))
59
+ return {
60
+ ready: false, reason: "stash_not_empty",
61
+ message: "This window has a stashed draft. Before retrying, restore or clear it yourself in the window. " +
62
+ "Wait until Claude is idle; with an empty input box, press Ctrl+S once to restore it and save any wanted text. " +
63
+ "AKK cannot identify the hidden contents. If you see [AKK replacing current draft ...], it may be an earlier AKK cleanup marker: " +
64
+ "remove only that marker (Ctrl+E then Ctrl+U if it is the entire single-line input), preserve any other text, and do not submit the marker. Empty the input box, refresh List, and retry. No task text was sent."
65
+ };
66
+ if (!knownFooter(frame.trailing))
67
+ return {
68
+ ready: false, reason: "footer_unrecognized",
69
+ message: "Claude main Composer is visible, but its footer contains an unknown or unsupported component. Return to the native main prompt; if it persists, report the footer layout. Task text was not sent."
70
+ };
71
+ // A contextual /clear notification is not foreground work or completion proof.
72
+ // Remove only the nearest exact native hint; retain real spinners and unknown text.
73
+ const activity = foregroundFailure(CLEAR_HINT.test(aboveComposer) ? currentBody.slice(0, -1) : currentBody, /\besc\s+to\s+interrupt\b/u.test(frame.trailing.join(" ")));
74
+ if (activity)
75
+ return activity;
76
+ if (frame.composerRows.some(line => /\[AKK replacing current draft(?:\s|\])/u.test(line)))
77
+ return {
78
+ ready: false, reason: "cleanup_marker_present",
79
+ message: "The input box contains an AKK-style cleanup marker, possibly left by an earlier failed Send. " +
80
+ "Do not press Enter on it. Remove only [AKK replacing current draft ...] (Ctrl+E then Ctrl+U if it is the entire single-line input), save any other text, " +
81
+ "then empty the input box, refresh List, and retry. AKK has not deleted anything or sent task text."
82
+ };
83
+ if (!options.allowDraft && (frame.composerRows.length !== 1 || !/^\s*❯\s*$/u.test(frame.composerRows[0])))
84
+ return {
85
+ ready: false, reason: "composer_not_empty",
86
+ message: "Claude main Composer contains a draft; preserve or clear it yourself before retrying. AKK did not replace the draft or submit task text."
87
+ };
88
+ return { ready: true };
89
+ }
90
+ //# sourceMappingURL=claude-user-explicit-input-proof.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-user-explicit-input-proof.js","sourceRoot":"","sources":["../../src/claude-user-explicit-input-proof.ts"],"names":[],"mappings":"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"}
@@ -849,6 +849,7 @@ const terminalListCliFacade = createTerminalListCliFacade({
849
849
  },
850
850
  discovery: {
851
851
  localCodexList: localCodexListForCli,
852
+ loadClaudeAgentRows, observeClaudeWindowRole: (options, pid, cwd) => terminalRuntime(options).observeClaudeWindowRole(pid, cwd),
852
853
  agentVersionForRunningProcess,
853
854
  codexLatentClearResumeObservation,
854
855
  codexManagedIdentityResolutionContext,