@scotthuang/agent-knock-knock 0.13.15 → 0.13.17

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 (213) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +2 -1
  3. package/dist/src/claude-terminal-agent-adapter.js +1 -1
  4. package/dist/src/claude-terminal-agent-adapter.js.map +1 -1
  5. package/dist/src/cli-core.js +6 -3
  6. package/dist/src/cli-core.js.map +1 -1
  7. package/dist/src/codex-app-server-interaction-client.js +68 -26
  8. package/dist/src/codex-app-server-interaction-client.js.map +1 -1
  9. package/dist/src/codex-app-server-read-client.js +52 -20
  10. package/dist/src/codex-app-server-read-client.js.map +1 -1
  11. package/dist/src/codex-astra-composer-proof.js +1 -1
  12. package/dist/src/codex-astra-composer-proof.js.map +1 -1
  13. package/dist/src/codex-open-rollout-inventory.d.ts +51 -0
  14. package/dist/src/codex-open-rollout-inventory.js +365 -0
  15. package/dist/src/codex-open-rollout-inventory.js.map +1 -0
  16. package/dist/src/codex-paginated-thread-binding.js +1 -1
  17. package/dist/src/codex-paginated-thread-binding.js.map +1 -1
  18. package/dist/src/codex-permission-surface.d.ts +23 -0
  19. package/dist/src/codex-permission-surface.js +211 -0
  20. package/dist/src/codex-permission-surface.js.map +1 -0
  21. package/dist/src/codex-rollout-bound-completion.d.ts +44 -0
  22. package/dist/src/codex-rollout-bound-completion.js +357 -0
  23. package/dist/src/codex-rollout-bound-completion.js.map +1 -0
  24. package/dist/src/codex-rollout-file.d.ts +15 -0
  25. package/dist/src/codex-rollout-file.js +98 -0
  26. package/dist/src/codex-rollout-file.js.map +1 -0
  27. package/dist/src/codex-rollout-human-task.d.ts +61 -0
  28. package/dist/src/codex-rollout-human-task.js +555 -0
  29. package/dist/src/codex-rollout-human-task.js.map +1 -0
  30. package/dist/src/codex-rollout-interaction-evidence.d.ts +48 -0
  31. package/dist/src/codex-rollout-interaction-evidence.js +521 -0
  32. package/dist/src/codex-rollout-interaction-evidence.js.map +1 -0
  33. package/dist/src/codex-rollout-inventory.d.ts +5 -0
  34. package/dist/src/codex-rollout-inventory.js +81 -0
  35. package/dist/src/codex-rollout-inventory.js.map +1 -0
  36. package/dist/src/codex-rollout-records.d.ts +49 -0
  37. package/dist/src/codex-rollout-records.js +298 -0
  38. package/dist/src/codex-rollout-records.js.map +1 -0
  39. package/dist/src/codex-sqlite-thread-query.d.ts +85 -0
  40. package/dist/src/codex-sqlite-thread-query.js +440 -0
  41. package/dist/src/codex-sqlite-thread-query.js.map +1 -0
  42. package/dist/src/codex-status-history-navigation.d.ts +1 -1
  43. package/dist/src/codex-status-history-navigation.js +1 -1
  44. package/dist/src/codex-status-history-navigation.js.map +1 -1
  45. package/dist/src/codex-store-adapter.d.ts +3 -50
  46. package/dist/src/codex-store-adapter.js +5 -796
  47. package/dist/src/codex-store-adapter.js.map +1 -1
  48. package/dist/src/codex-terminal-agent-adapter.js +1 -1
  49. package/dist/src/codex-terminal-agent-adapter.js.map +1 -1
  50. package/dist/src/native-thread-lifecycle-cli-adapter.d.ts +7 -136
  51. package/dist/src/native-thread-lifecycle-cli-adapter.js +39 -633
  52. package/dist/src/native-thread-lifecycle-cli-adapter.js.map +1 -1
  53. package/dist/src/native-thread-lifecycle-cli-contract.d.ts +138 -0
  54. package/dist/src/native-thread-lifecycle-cli-contract.js +2 -0
  55. package/dist/src/native-thread-lifecycle-cli-contract.js.map +1 -0
  56. package/dist/src/semantic-permission-control.d.ts +19 -0
  57. package/dist/src/semantic-permission-control.js +201 -0
  58. package/dist/src/semantic-permission-control.js.map +1 -0
  59. package/dist/src/semantic-tool-command-helpers.d.ts +7 -0
  60. package/dist/src/semantic-tool-command-helpers.js +29 -1
  61. package/dist/src/semantic-tool-command-helpers.js.map +1 -1
  62. package/dist/src/semantic-tool-descriptions.d.ts +26 -0
  63. package/dist/src/semantic-tool-descriptions.js +259 -0
  64. package/dist/src/semantic-tool-descriptions.js.map +1 -0
  65. package/dist/src/semantic-tool-list-projection.js +4 -0
  66. package/dist/src/semantic-tool-list-projection.js.map +1 -1
  67. package/dist/src/semantic-tool-presentation.js +5 -2
  68. package/dist/src/semantic-tool-presentation.js.map +1 -1
  69. package/dist/src/semantic-tool-runtime.js +50 -36
  70. package/dist/src/semantic-tool-runtime.js.map +1 -1
  71. package/dist/src/semantic-tool-schemas.d.ts +33 -0
  72. package/dist/src/semantic-tool-schemas.js +165 -31
  73. package/dist/src/semantic-tool-schemas.js.map +1 -1
  74. package/dist/src/terminal-action-contracts.d.ts +4 -0
  75. package/dist/src/terminal-action-contracts.js +695 -0
  76. package/dist/src/terminal-action-contracts.js.map +1 -0
  77. package/dist/src/terminal-action-projection.d.ts +1 -1
  78. package/dist/src/terminal-action-projection.js.map +1 -1
  79. package/dist/src/terminal-agent-bridge.d.ts +3 -0
  80. package/dist/src/terminal-agent-bridge.js +11 -0
  81. package/dist/src/terminal-agent-bridge.js.map +1 -1
  82. package/dist/src/terminal-composer-classifier.d.ts +1 -1
  83. package/dist/src/terminal-composer-classifier.js +31 -5
  84. package/dist/src/terminal-composer-classifier.js.map +1 -1
  85. package/dist/src/terminal-interaction-response-bridge.js +1 -1
  86. package/dist/src/terminal-interaction-response-bridge.js.map +1 -1
  87. package/dist/src/terminal-list-cli-adapter.js +7 -12
  88. package/dist/src/terminal-list-cli-adapter.js.map +1 -1
  89. package/dist/src/terminal-list-renderer.d.ts +8 -2
  90. package/dist/src/terminal-list-renderer.js +37 -400
  91. package/dist/src/terminal-list-renderer.js.map +1 -1
  92. package/dist/src/terminal-model-control-action-policy.d.ts +1 -1
  93. package/dist/src/terminal-model-control-availability.d.ts +1 -1
  94. package/dist/src/terminal-model-control-availability.js +1 -1
  95. package/dist/src/terminal-model-control-availability.js.map +1 -1
  96. package/dist/src/terminal-model-control-cli-adapter.d.ts +34 -0
  97. package/dist/src/terminal-model-control-cli-adapter.js +669 -0
  98. package/dist/src/terminal-model-control-cli-adapter.js.map +1 -0
  99. package/dist/src/terminal-model-control-contract.d.ts +198 -0
  100. package/dist/src/terminal-model-control-contract.js +15 -0
  101. package/dist/src/terminal-model-control-contract.js.map +1 -0
  102. package/dist/src/terminal-model-control-input.d.ts +29 -0
  103. package/dist/src/terminal-model-control-input.js +86 -0
  104. package/dist/src/terminal-model-control-input.js.map +1 -0
  105. package/dist/src/terminal-model-control-profile.d.ts +2 -0
  106. package/dist/src/terminal-model-control-profile.js +6 -0
  107. package/dist/src/terminal-model-control-profile.js.map +1 -1
  108. package/dist/src/terminal-model-control-subject.d.ts +52 -0
  109. package/dist/src/terminal-model-control-subject.js +73 -0
  110. package/dist/src/terminal-model-control-subject.js.map +1 -1
  111. package/dist/src/terminal-model-control-surface.d.ts +82 -0
  112. package/dist/src/terminal-model-control-surface.js +688 -0
  113. package/dist/src/terminal-model-control-surface.js.map +1 -0
  114. package/dist/src/terminal-model-control.d.ts +6 -270
  115. package/dist/src/terminal-model-control.js +11 -988
  116. package/dist/src/terminal-model-control.js.map +1 -1
  117. package/dist/src/terminal-model-selection.d.ts +33 -0
  118. package/dist/src/terminal-model-selection.js +143 -0
  119. package/dist/src/terminal-model-selection.js.map +1 -0
  120. package/dist/src/terminal-monitor-application-service.js +38 -59
  121. package/dist/src/terminal-monitor-application-service.js.map +1 -1
  122. package/dist/src/terminal-monitor-attention-store.d.ts +65 -0
  123. package/dist/src/terminal-monitor-attention-store.js +518 -0
  124. package/dist/src/terminal-monitor-attention-store.js.map +1 -0
  125. package/dist/src/terminal-monitor-collateral-recovery.d.ts +12 -0
  126. package/dist/src/terminal-monitor-collateral-recovery.js +415 -0
  127. package/dist/src/terminal-monitor-collateral-recovery.js.map +1 -0
  128. package/dist/src/terminal-monitor-decision-policy.d.ts +1 -1
  129. package/dist/src/terminal-monitor-interaction-projection.d.ts +19 -0
  130. package/dist/src/terminal-monitor-interaction-projection.js +48 -0
  131. package/dist/src/terminal-monitor-interaction-projection.js.map +1 -0
  132. package/dist/src/terminal-monitor-startup-recovery.d.ts +15 -0
  133. package/dist/src/terminal-monitor-startup-recovery.js +767 -0
  134. package/dist/src/terminal-monitor-startup-recovery.js.map +1 -0
  135. package/dist/src/terminal-monitor-state-cli-adapter.d.ts +2 -104
  136. package/dist/src/terminal-monitor-state-cli-adapter.js +28 -1640
  137. package/dist/src/terminal-monitor-state-cli-adapter.js.map +1 -1
  138. package/dist/src/terminal-monitor-state-contract.d.ts +108 -0
  139. package/dist/src/terminal-monitor-state-contract.js +8 -0
  140. package/dist/src/terminal-monitor-state-contract.js.map +1 -0
  141. package/dist/src/terminal-native-control-cli-contract.d.ts +16 -0
  142. package/dist/src/terminal-native-control-cli-contract.js +2 -0
  143. package/dist/src/terminal-native-control-cli-contract.js.map +1 -0
  144. package/dist/src/terminal-native-inspection-bridge.d.ts +4 -153
  145. package/dist/src/terminal-native-inspection-bridge.js +7 -646
  146. package/dist/src/terminal-native-inspection-bridge.js.map +1 -1
  147. package/dist/src/terminal-native-inspection-contract.d.ts +128 -0
  148. package/dist/src/terminal-native-inspection-contract.js +38 -0
  149. package/dist/src/terminal-native-inspection-contract.js.map +1 -0
  150. package/dist/src/terminal-native-inspection-profile.d.ts +15 -0
  151. package/dist/src/terminal-native-inspection-profile.js +185 -0
  152. package/dist/src/terminal-native-inspection-profile.js.map +1 -0
  153. package/dist/src/terminal-native-inspection-proof.d.ts +62 -0
  154. package/dist/src/terminal-native-inspection-proof.js +362 -0
  155. package/dist/src/terminal-native-inspection-proof.js.map +1 -0
  156. package/dist/src/terminal-permission-control-availability.d.ts +31 -0
  157. package/dist/src/terminal-permission-control-availability.js +50 -0
  158. package/dist/src/terminal-permission-control-availability.js.map +1 -0
  159. package/dist/src/terminal-permission-control-bridge.d.ts +16 -0
  160. package/dist/src/terminal-permission-control-bridge.js +93 -0
  161. package/dist/src/terminal-permission-control-bridge.js.map +1 -0
  162. package/dist/src/terminal-permission-control-cli-adapter.d.ts +31 -0
  163. package/dist/src/terminal-permission-control-cli-adapter.js +152 -0
  164. package/dist/src/terminal-permission-control-cli-adapter.js.map +1 -0
  165. package/dist/src/terminal-permission-control-list-projection.d.ts +23 -0
  166. package/dist/src/terminal-permission-control-list-projection.js +47 -0
  167. package/dist/src/terminal-permission-control-list-projection.js.map +1 -0
  168. package/dist/src/terminal-permission-control-runtime.d.ts +28 -0
  169. package/dist/src/terminal-permission-control-runtime.js +88 -0
  170. package/dist/src/terminal-permission-control-runtime.js.map +1 -0
  171. package/dist/src/terminal-permission-control.d.ts +69 -0
  172. package/dist/src/terminal-permission-control.js +217 -0
  173. package/dist/src/terminal-permission-control.js.map +1 -0
  174. package/dist/src/terminal-runtime-cli-adapter.d.ts +2 -1
  175. package/dist/src/terminal-runtime-cli-adapter.js +1 -1
  176. package/dist/src/terminal-runtime-cli-adapter.js.map +1 -1
  177. package/dist/src/terminal-submission-acceptance.d.ts +5 -148
  178. package/dist/src/terminal-submission-acceptance.js +21 -1845
  179. package/dist/src/terminal-submission-acceptance.js.map +1 -1
  180. package/dist/src/terminal-watch-anchor-capture.d.ts +9 -0
  181. package/dist/src/terminal-watch-anchor-capture.js +139 -0
  182. package/dist/src/terminal-watch-anchor-capture.js.map +1 -0
  183. package/dist/src/terminal-watch-cli-adapter.d.ts +3 -117
  184. package/dist/src/terminal-watch-cli-adapter.js +10 -1992
  185. package/dist/src/terminal-watch-cli-adapter.js.map +1 -1
  186. package/dist/src/terminal-watch-cli-contract.d.ts +117 -0
  187. package/dist/src/terminal-watch-cli-contract.js +2 -0
  188. package/dist/src/terminal-watch-cli-contract.js.map +1 -0
  189. package/dist/src/terminal-watch-fallback-observation.d.ts +15 -0
  190. package/dist/src/terminal-watch-fallback-observation.js +249 -0
  191. package/dist/src/terminal-watch-fallback-observation.js.map +1 -0
  192. package/dist/src/terminal-watch-interaction-observation.d.ts +26 -0
  193. package/dist/src/terminal-watch-interaction-observation.js +262 -0
  194. package/dist/src/terminal-watch-interaction-observation.js.map +1 -0
  195. package/dist/src/terminal-watch-observation-adapter.d.ts +4 -0
  196. package/dist/src/terminal-watch-observation-adapter.js +307 -0
  197. package/dist/src/terminal-watch-observation-adapter.js.map +1 -0
  198. package/dist/src/terminal-watch-observation-evidence.d.ts +25 -0
  199. package/dist/src/terminal-watch-observation-evidence.js +184 -0
  200. package/dist/src/terminal-watch-observation-evidence.js.map +1 -0
  201. package/dist/src/terminal-watch-response-authority.d.ts +6 -0
  202. package/dist/src/terminal-watch-response-authority.js +333 -0
  203. package/dist/src/terminal-watch-response-authority.js.map +1 -0
  204. package/dist/src/terminal-watch-response-cli-adapter.d.ts +3 -0
  205. package/dist/src/terminal-watch-response-cli-adapter.js +230 -0
  206. package/dist/src/terminal-watch-response-cli-adapter.js.map +1 -0
  207. package/dist/src/terminal-watch-terminal-identity.d.ts +39 -0
  208. package/dist/src/terminal-watch-terminal-identity.js +380 -0
  209. package/dist/src/terminal-watch-terminal-identity.js.map +1 -0
  210. package/docs/codex-permissions.md +95 -0
  211. package/openclaw.plugin.json +9 -1
  212. package/package.json +3 -2
  213. package/templates/openclaw-skills/agent-knock-knock/SKILL.md +6 -1
@@ -0,0 +1,51 @@
1
+ import { type ActiveAgentSessionIdentity, type CodexOpenRootRolloutIdentity, type CodexOpenRootRolloutInventory } from "./agent-session-provider.js";
2
+ /** Exact open-file inventory. A cwd match alone never establishes process ownership. */
3
+ export declare const MAX_CODEX_OPEN_ROOT_ROLLOUTS = 128;
4
+ export interface LsofOpenFileRecord {
5
+ fd?: string;
6
+ type?: string;
7
+ device?: string;
8
+ inode?: string;
9
+ path?: string;
10
+ }
11
+ export declare function parseLsofOpenFiles(text: string): LsofOpenFileRecord[];
12
+ export declare function resolveCodexOpenRolloutIdentity({ codexHome, pid, cwd, preferredSessionId, allowedCompanionIdentity, allowedAdditionalIdentities, processBirth, lsofOutput }: {
13
+ codexHome: string;
14
+ pid: number;
15
+ cwd?: string;
16
+ preferredSessionId?: string;
17
+ allowedCompanionIdentity?: ActiveAgentSessionIdentity;
18
+ allowedAdditionalIdentities?: readonly ActiveAgentSessionIdentity[];
19
+ processBirth: string;
20
+ lsofOutput: string;
21
+ }): ActiveAgentSessionIdentity | undefined;
22
+ export declare function inspectCodexOpenRootRolloutInventory({ codexHome, pid, cwd, processBirth, lsofOutput }: {
23
+ codexHome: string;
24
+ pid: number;
25
+ cwd?: string;
26
+ processBirth: string;
27
+ lsofOutput: string;
28
+ }): CodexOpenRootRolloutInventory;
29
+ export type CodexOpenRootDuplicateDisposition = "none" | "transient_exact_descriptor_duplicate" | "conflicting_identity";
30
+ export declare function classifyCodexOpenRootDuplicates(identities: readonly CodexOpenRootRolloutIdentity[]): CodexOpenRootDuplicateDisposition;
31
+ export declare function codexOpenRootRolloutInventoryResult({ pid, processUuid, processBirth, cwd, roots }: {
32
+ pid: number;
33
+ processUuid: string;
34
+ processBirth: string;
35
+ cwd?: string;
36
+ roots: CodexOpenRootRolloutIdentity[];
37
+ }): CodexOpenRootRolloutInventory;
38
+ export declare function selectCodexOpenRolloutIdentity({ inventory, preferredSessionId, allowedCompanionIdentity, allowedAdditionalIdentities }: {
39
+ inventory: CodexOpenRootRolloutInventory;
40
+ preferredSessionId?: string;
41
+ allowedCompanionIdentity?: ActiveAgentSessionIdentity;
42
+ allowedAdditionalIdentities?: readonly ActiveAgentSessionIdentity[];
43
+ }): ActiveAgentSessionIdentity | undefined;
44
+ export declare function sameActiveCodexIdentity(left: ActiveAgentSessionIdentity, right: ActiveAgentSessionIdentity): boolean;
45
+ export declare function parseLsofInteger(value: string): bigint;
46
+ export declare function readCodexSessionMetadata(filePath: string, expectedDevice: bigint, expectedInode: bigint, pid: number): {
47
+ id: string;
48
+ cwd: string;
49
+ originator: string;
50
+ source: unknown;
51
+ } | undefined;
@@ -0,0 +1,365 @@
1
+ import { createHash } from "node:crypto";
2
+ import fs from "node:fs";
3
+ import path from "node:path";
4
+ import { CodexTransientDuplicateOpenRootDescriptorsError } from "./agent-session-provider.js";
5
+ import { codexThreadUsesLegacyRollout } from "./codex-session-provider.js";
6
+ /** Exact open-file inventory. A cwd match alone never establishes process ownership. */
7
+ export const MAX_CODEX_OPEN_ROOT_ROLLOUTS = 128;
8
+ export function parseLsofOpenFiles(text) {
9
+ const records = [];
10
+ let current;
11
+ const flush = () => {
12
+ if (current) {
13
+ records.push(current);
14
+ }
15
+ };
16
+ for (const line of text.split(/\r?\n/u)) {
17
+ if (line.startsWith("f")) {
18
+ flush();
19
+ current = { fd: line.slice(1) };
20
+ }
21
+ else if (current && line.startsWith("t")) {
22
+ current.type = line.slice(1);
23
+ }
24
+ else if (current && line.startsWith("D")) {
25
+ current.device = line.slice(1);
26
+ }
27
+ else if (current && line.startsWith("i")) {
28
+ current.inode = line.slice(1);
29
+ }
30
+ else if (current && line.startsWith("n")) {
31
+ current.path = line.slice(1);
32
+ }
33
+ }
34
+ flush();
35
+ return records;
36
+ }
37
+ export function resolveCodexOpenRolloutIdentity({ codexHome, pid, cwd, preferredSessionId, allowedCompanionIdentity, allowedAdditionalIdentities, processBirth, lsofOutput }) {
38
+ const inventory = inspectCodexOpenRootRolloutInventory({
39
+ codexHome,
40
+ pid,
41
+ cwd,
42
+ processBirth,
43
+ lsofOutput
44
+ });
45
+ return selectCodexOpenRolloutIdentity({
46
+ inventory,
47
+ preferredSessionId,
48
+ allowedCompanionIdentity,
49
+ allowedAdditionalIdentities
50
+ });
51
+ }
52
+ export function inspectCodexOpenRootRolloutInventory({ codexHome, pid, cwd, processBirth, lsofOutput }) {
53
+ if (!Number.isSafeInteger(pid) || pid <= 1 || !processBirth.trim()) {
54
+ throw new Error("Codex rollout inventory requires an exact process incarnation");
55
+ }
56
+ const rolloutFiles = parseLsofOpenFiles(lsofOutput).filter((openFile) => {
57
+ if (!openFile.path) {
58
+ return false;
59
+ }
60
+ const openPath = openFile.path.replace(/\s+\(deleted\)$/u, "");
61
+ return /^rollout-.*\.jsonl$/u.test(path.basename(openPath));
62
+ });
63
+ if (rolloutFiles.length > MAX_CODEX_OPEN_ROOT_ROLLOUTS) {
64
+ throw new Error(`Codex process ${pid} has too many open rollout files to inspect safely`);
65
+ }
66
+ const processUuid = `codex-pid:${pid}:birth:${processBirth}`;
67
+ const expectedCwd = cwd ? path.resolve(cwd) : undefined;
68
+ // An absent sessions directory is only evidence of a virgin process when
69
+ // lsof also reported no rollout descriptor at all. Once a rollout FD exists,
70
+ // every descriptor and every root/subagent classification must be verified.
71
+ if (rolloutFiles.length === 0) {
72
+ return codexOpenRootRolloutInventoryResult({
73
+ pid,
74
+ processUuid,
75
+ processBirth,
76
+ cwd: expectedCwd,
77
+ roots: []
78
+ });
79
+ }
80
+ const configuredSessionsRoot = path.join(codexHome, "sessions");
81
+ let sessionsRoot;
82
+ try {
83
+ sessionsRoot = fs.realpathSync(configuredSessionsRoot);
84
+ }
85
+ catch {
86
+ throw new Error(`Codex process ${pid} has open rollout files but CODEX_HOME/sessions is unavailable`);
87
+ }
88
+ const identities = [];
89
+ for (const openFile of rolloutFiles) {
90
+ const openPath = openFile.path;
91
+ const descriptorPath = openPath.replace(/\s+\(deleted\)$/u, "");
92
+ const lexicalRelative = path.relative(path.resolve(configuredSessionsRoot), path.resolve(descriptorPath));
93
+ if (!lexicalRelative ||
94
+ lexicalRelative.startsWith("..") ||
95
+ path.isAbsolute(lexicalRelative)) {
96
+ throw new Error(`Codex process ${pid} has an open rollout outside CODEX_HOME/sessions`);
97
+ }
98
+ if (openFile.type !== "REG" ||
99
+ !openFile.fd ||
100
+ !openFile.device ||
101
+ !openFile.inode ||
102
+ /\s+\(deleted\)$/u.test(openPath)) {
103
+ throw new Error(`Codex process ${pid} has an unverifiable open rollout descriptor`);
104
+ }
105
+ let realPath;
106
+ try {
107
+ realPath = fs.realpathSync(descriptorPath);
108
+ }
109
+ catch {
110
+ throw new Error(`Codex process ${pid} has an unreadable open rollout descriptor`);
111
+ }
112
+ const relative = path.relative(sessionsRoot, realPath);
113
+ if (!relative || relative.startsWith("..") || path.isAbsolute(relative)) {
114
+ throw new Error(`Codex process ${pid} has an open rollout outside CODEX_HOME/sessions`);
115
+ }
116
+ const expectedDevice = parseLsofInteger(openFile.device);
117
+ const expectedInode = parseLsofInteger(openFile.inode);
118
+ const metadata = readCodexSessionMetadata(descriptorPath, expectedDevice, expectedInode, pid);
119
+ let confirmedRealPath;
120
+ try {
121
+ confirmedRealPath = fs.realpathSync(descriptorPath);
122
+ }
123
+ catch {
124
+ throw new Error(`Codex process ${pid} has an unreadable open rollout descriptor`);
125
+ }
126
+ if (confirmedRealPath !== realPath) {
127
+ throw new Error(`Codex process ${pid} rollout path changed while it was being verified`);
128
+ }
129
+ const filenameSessionId = /([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\.jsonl$/iu
130
+ .exec(path.basename(descriptorPath))?.[1];
131
+ if (!metadata || metadata.id !== filenameSessionId) {
132
+ throw new Error(`Codex process ${pid} has invalid rollout session metadata`);
133
+ }
134
+ if (typeof metadata.source === "object" &&
135
+ metadata.source !== null &&
136
+ "subagent" in metadata.source) {
137
+ continue;
138
+ }
139
+ if (metadata.originator !== "codex-tui" ||
140
+ metadata.source !== "cli" ||
141
+ (expectedCwd && path.resolve(metadata.cwd) !== expectedCwd)) {
142
+ throw new Error(`Codex process ${pid} has an indeterminate open root rollout`);
143
+ }
144
+ identities.push({
145
+ sessionId: metadata.id,
146
+ processUuid,
147
+ processBirth,
148
+ rollout: {
149
+ fd: openFile.fd,
150
+ device: openFile.device,
151
+ inode: openFile.inode,
152
+ path: confirmedRealPath
153
+ },
154
+ evidence: "codex_open_root_rollout"
155
+ });
156
+ }
157
+ if (identities.length === 0) {
158
+ throw new Error(`Codex process ${pid} has open rollout files but no exact TUI root identity`);
159
+ }
160
+ identities.sort((left, right) => left.sessionId.localeCompare(right.sessionId) ||
161
+ left.rollout.path.localeCompare(right.rollout.path) ||
162
+ left.rollout.fd.localeCompare(right.rollout.fd));
163
+ const duplicateDisposition = classifyCodexOpenRootDuplicates(identities);
164
+ if (duplicateDisposition === "transient_exact_descriptor_duplicate") {
165
+ throw new CodexTransientDuplicateOpenRootDescriptorsError(pid);
166
+ }
167
+ if (duplicateDisposition === "conflicting_identity") {
168
+ throw new Error(`Codex process ${pid} has duplicate open root rollout identities`);
169
+ }
170
+ return codexOpenRootRolloutInventoryResult({
171
+ pid,
172
+ processUuid,
173
+ processBirth,
174
+ cwd: expectedCwd,
175
+ roots: identities
176
+ });
177
+ }
178
+ export function classifyCodexOpenRootDuplicates(identities) {
179
+ let exactDescriptorDuplicate = false;
180
+ for (let leftIndex = 0; leftIndex < identities.length; leftIndex += 1) {
181
+ const left = identities[leftIndex];
182
+ for (let rightIndex = leftIndex + 1; rightIndex < identities.length; rightIndex += 1) {
183
+ const right = identities[rightIndex];
184
+ const sameSession = left.sessionId === right.sessionId;
185
+ const sameFile = left.rollout.device === right.rollout.device &&
186
+ left.rollout.inode === right.rollout.inode;
187
+ if (!sameSession && !sameFile) {
188
+ continue;
189
+ }
190
+ const exactRolloutWithDistinctDescriptors = sameSession &&
191
+ sameFile &&
192
+ left.processUuid === right.processUuid &&
193
+ left.processBirth === right.processBirth &&
194
+ left.rollout.path === right.rollout.path &&
195
+ left.rollout.fd !== right.rollout.fd;
196
+ if (!exactRolloutWithDistinctDescriptors) {
197
+ return "conflicting_identity";
198
+ }
199
+ exactDescriptorDuplicate = true;
200
+ }
201
+ }
202
+ return exactDescriptorDuplicate
203
+ ? "transient_exact_descriptor_duplicate"
204
+ : "none";
205
+ }
206
+ export function codexOpenRootRolloutInventoryResult({ pid, processUuid, processBirth, cwd, roots }) {
207
+ const authority = {
208
+ schema: "agent-knock-knock/codex-open-root-rollout-inventory",
209
+ version: 1,
210
+ pid,
211
+ processUuid,
212
+ processBirth,
213
+ ...(cwd ? { cwd } : {}),
214
+ roots
215
+ };
216
+ const inventoryFingerprint = createHash("sha256")
217
+ .update(JSON.stringify(authority))
218
+ .digest("hex");
219
+ if (roots.length === 0) {
220
+ return {
221
+ ...authority,
222
+ status: "verified_absent",
223
+ roots: [],
224
+ inventoryFingerprint
225
+ };
226
+ }
227
+ if (roots.length === 1) {
228
+ return {
229
+ ...authority,
230
+ status: "resolved",
231
+ roots: [roots[0]],
232
+ inventoryFingerprint
233
+ };
234
+ }
235
+ return {
236
+ ...authority,
237
+ status: "unbound",
238
+ reason: "multiple_open_root_rollouts",
239
+ inventoryFingerprint
240
+ };
241
+ }
242
+ export function selectCodexOpenRolloutIdentity({ inventory, preferredSessionId, allowedCompanionIdentity, allowedAdditionalIdentities }) {
243
+ const pid = inventory.pid;
244
+ const identities = inventory.roots;
245
+ if (identities.length === 0) {
246
+ return undefined;
247
+ }
248
+ if (preferredSessionId) {
249
+ const preferred = identities.filter((identity) => identity.sessionId === preferredSessionId);
250
+ if (preferred.length > 1) {
251
+ throw new Error(`Codex process ${pid} has multiple open root rollouts for preferred ` +
252
+ `session ${preferredSessionId}`);
253
+ }
254
+ if (allowedCompanionIdentity) {
255
+ const allowedConstraints = [
256
+ allowedCompanionIdentity,
257
+ ...(allowedAdditionalIdentities ?? [])
258
+ ];
259
+ const allowedMatches = [];
260
+ for (const constraint of allowedConstraints) {
261
+ const matches = identities.filter((identity) => sameActiveCodexIdentity(identity, constraint));
262
+ if (matches.length > 1) {
263
+ throw new Error(`Codex process ${pid} has multiple open root rollouts for an ` +
264
+ "allowed companion session");
265
+ }
266
+ if (matches[0] && !allowedMatches.includes(matches[0])) {
267
+ allowedMatches.push(matches[0]);
268
+ }
269
+ }
270
+ const unexpected = identities.filter((identity) => identity !== preferred[0] && !allowedMatches.includes(identity));
271
+ if (unexpected.length > 0) {
272
+ throw new Error(`Codex process ${pid} has an unexpected open root rollout outside ` +
273
+ "the preferred and exact companion identities");
274
+ }
275
+ if (preferred.length === 1) {
276
+ return preferred[0];
277
+ }
278
+ const primaryCompanion = identities.find((identity) => sameActiveCodexIdentity(identity, allowedCompanionIdentity));
279
+ if (primaryCompanion) {
280
+ return primaryCompanion;
281
+ }
282
+ if (allowedMatches.length > 0) {
283
+ // The immediately preceding rollout can close while an older,
284
+ // independently verified managed ancestor remains open. Constraint
285
+ // order is authoritative and deterministic; unknown roots were
286
+ // rejected above, so the first surviving exact companion is safe
287
+ // process-incarnation evidence for a fresh status-card proof.
288
+ return allowedMatches[0];
289
+ }
290
+ throw new Error(`Codex process ${pid} has neither the preferred session nor an ` +
291
+ "exact managed companion rollout open");
292
+ }
293
+ else if (preferred.length === 1 && identities.length === 1) {
294
+ return preferred[0];
295
+ }
296
+ else {
297
+ throw new Error(`Codex process ${pid} does not have the preferred session as its ` +
298
+ "sole open root rollout");
299
+ }
300
+ }
301
+ if (identities.length !== 1) {
302
+ throw new Error(`Codex process ${pid} has ${identities.length} open root rollout files; ` +
303
+ "the foreground native session is ambiguous");
304
+ }
305
+ return identities[0];
306
+ }
307
+ export function sameActiveCodexIdentity(left, right) {
308
+ return Boolean(left.sessionId === right.sessionId &&
309
+ left.processUuid === right.processUuid &&
310
+ left.processBirth === right.processBirth &&
311
+ left.rollout?.fd === right.rollout?.fd &&
312
+ left.rollout?.device === right.rollout?.device &&
313
+ left.rollout?.inode === right.rollout?.inode &&
314
+ left.rollout?.path === right.rollout?.path);
315
+ }
316
+ export function parseLsofInteger(value) {
317
+ try {
318
+ return BigInt(value);
319
+ }
320
+ catch {
321
+ return -1n;
322
+ }
323
+ }
324
+ export function readCodexSessionMetadata(filePath, expectedDevice, expectedInode, pid) {
325
+ let fd;
326
+ try {
327
+ fd = fs.openSync(filePath, fs.constants.O_RDONLY | fs.constants.O_NOFOLLOW);
328
+ }
329
+ catch {
330
+ throw new Error(`Codex process ${pid} has an unreadable open rollout descriptor`);
331
+ }
332
+ try {
333
+ const stat = fs.fstatSync(fd, { bigint: true });
334
+ if (!stat.isFile() ||
335
+ stat.dev !== expectedDevice ||
336
+ stat.ino !== expectedInode) {
337
+ throw new Error(`Codex process ${pid} rollout descriptor no longer matches its file`);
338
+ }
339
+ const buffer = Buffer.alloc(1024 * 1024);
340
+ const bytesRead = fs.readSync(fd, buffer, 0, buffer.length, 0);
341
+ const text = buffer.subarray(0, bytesRead).toString("utf8");
342
+ const newline = text.indexOf("\n");
343
+ if (newline < 0 && bytesRead === buffer.length) {
344
+ throw new Error(`Codex session metadata line is too large: ${filePath}`);
345
+ }
346
+ const parsed = JSON.parse(newline >= 0 ? text.slice(0, newline) : text);
347
+ const payload = parsed?.type === "session_meta" ? parsed.payload : undefined;
348
+ if (typeof payload?.id !== "string" ||
349
+ typeof payload?.cwd !== "string" ||
350
+ typeof payload?.originator !== "string" ||
351
+ !codexThreadUsesLegacyRollout(payload)) {
352
+ return undefined;
353
+ }
354
+ return {
355
+ id: payload.id,
356
+ cwd: payload.cwd,
357
+ originator: payload.originator,
358
+ source: payload.source
359
+ };
360
+ }
361
+ finally {
362
+ fs.closeSync(fd);
363
+ }
364
+ }
365
+ //# sourceMappingURL=codex-open-rollout-inventory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-open-rollout-inventory.js","sourceRoot":"","sources":["../../src/codex-open-rollout-inventory.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import { codexProcessIncarnationForPid } from "./codex-process-incarnation.js";
5
5
  import { isCodexPaginatedReadCandidate } from "./codex-lifecycle-compatibility.js";
6
6
  import { connectCodexAppServerReadClient } from "./codex-app-server-read-client.js";
7
7
  import { createCodexTerminalAgentAdapter } from "./codex-terminal-agent-adapter.js";
8
- import { stripTerminalEscapeSequences } from "./terminal-native-inspection-bridge.js";
8
+ import { stripTerminalEscapeSequences } from "./terminal-native-inspection-proof.js";
9
9
  export function codexPaginatedHome(configured) {
10
10
  const value = configured ?? process.env.CODEX_HOME ?? path.join(os.homedir(), ".codex");
11
11
  return path.resolve(value.startsWith("~/") ? path.join(os.homedir(), value.slice(2)) : value);
@@ -1 +1 @@
1
- {"version":3,"file":"codex-paginated-thread-binding.js","sourceRoot":"","sources":["../../src/codex-paginated-thread-binding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-paginated-thread-binding.js","sourceRoot":"","sources":["../../src/codex-paginated-thread-binding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export type CodexPermissionId = "read_only" | "ask_for_approval" | "approve_for_me" | "full_access";
2
+ export interface CodexPermissionRow {
3
+ readonly id: CodexPermissionId;
4
+ readonly label: string;
5
+ readonly description: string;
6
+ readonly current: boolean;
7
+ readonly index: number;
8
+ }
9
+ export type CodexPermissionSurface = {
10
+ readonly state: "picker";
11
+ readonly rows: readonly CodexPermissionRow[];
12
+ readonly selectedIndex: number;
13
+ readonly fingerprint: string;
14
+ } | {
15
+ readonly state: "full_access_confirmation";
16
+ readonly selectedIndex: number;
17
+ readonly fingerprint: string;
18
+ } | {
19
+ readonly state: "none" | "ambiguous";
20
+ readonly reason?: string;
21
+ };
22
+ /** Closed, styled Codex 0.159.2/0.159.3 permission picker grammar. */
23
+ export declare function observeCodexPermissionSurface(styledScreen: string): CodexPermissionSurface;