@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.
- package/CHANGELOG.md +13 -0
- package/README.md +2 -1
- package/dist/src/claude-terminal-agent-adapter.js +1 -1
- package/dist/src/claude-terminal-agent-adapter.js.map +1 -1
- package/dist/src/cli-core.js +6 -3
- package/dist/src/cli-core.js.map +1 -1
- package/dist/src/codex-app-server-interaction-client.js +68 -26
- package/dist/src/codex-app-server-interaction-client.js.map +1 -1
- package/dist/src/codex-app-server-read-client.js +52 -20
- package/dist/src/codex-app-server-read-client.js.map +1 -1
- package/dist/src/codex-astra-composer-proof.js +1 -1
- package/dist/src/codex-astra-composer-proof.js.map +1 -1
- package/dist/src/codex-open-rollout-inventory.d.ts +51 -0
- package/dist/src/codex-open-rollout-inventory.js +365 -0
- package/dist/src/codex-open-rollout-inventory.js.map +1 -0
- package/dist/src/codex-paginated-thread-binding.js +1 -1
- package/dist/src/codex-paginated-thread-binding.js.map +1 -1
- package/dist/src/codex-permission-surface.d.ts +23 -0
- package/dist/src/codex-permission-surface.js +211 -0
- package/dist/src/codex-permission-surface.js.map +1 -0
- package/dist/src/codex-rollout-bound-completion.d.ts +44 -0
- package/dist/src/codex-rollout-bound-completion.js +357 -0
- package/dist/src/codex-rollout-bound-completion.js.map +1 -0
- package/dist/src/codex-rollout-file.d.ts +15 -0
- package/dist/src/codex-rollout-file.js +98 -0
- package/dist/src/codex-rollout-file.js.map +1 -0
- package/dist/src/codex-rollout-human-task.d.ts +61 -0
- package/dist/src/codex-rollout-human-task.js +555 -0
- package/dist/src/codex-rollout-human-task.js.map +1 -0
- package/dist/src/codex-rollout-interaction-evidence.d.ts +48 -0
- package/dist/src/codex-rollout-interaction-evidence.js +521 -0
- package/dist/src/codex-rollout-interaction-evidence.js.map +1 -0
- package/dist/src/codex-rollout-inventory.d.ts +5 -0
- package/dist/src/codex-rollout-inventory.js +81 -0
- package/dist/src/codex-rollout-inventory.js.map +1 -0
- package/dist/src/codex-rollout-records.d.ts +49 -0
- package/dist/src/codex-rollout-records.js +298 -0
- package/dist/src/codex-rollout-records.js.map +1 -0
- package/dist/src/codex-sqlite-thread-query.d.ts +85 -0
- package/dist/src/codex-sqlite-thread-query.js +440 -0
- package/dist/src/codex-sqlite-thread-query.js.map +1 -0
- package/dist/src/codex-status-history-navigation.d.ts +1 -1
- package/dist/src/codex-status-history-navigation.js +1 -1
- package/dist/src/codex-status-history-navigation.js.map +1 -1
- package/dist/src/codex-store-adapter.d.ts +3 -50
- package/dist/src/codex-store-adapter.js +5 -796
- package/dist/src/codex-store-adapter.js.map +1 -1
- package/dist/src/codex-terminal-agent-adapter.js +1 -1
- package/dist/src/codex-terminal-agent-adapter.js.map +1 -1
- package/dist/src/native-thread-lifecycle-cli-adapter.d.ts +7 -136
- package/dist/src/native-thread-lifecycle-cli-adapter.js +39 -633
- package/dist/src/native-thread-lifecycle-cli-adapter.js.map +1 -1
- package/dist/src/native-thread-lifecycle-cli-contract.d.ts +138 -0
- package/dist/src/native-thread-lifecycle-cli-contract.js +2 -0
- package/dist/src/native-thread-lifecycle-cli-contract.js.map +1 -0
- package/dist/src/semantic-permission-control.d.ts +19 -0
- package/dist/src/semantic-permission-control.js +201 -0
- package/dist/src/semantic-permission-control.js.map +1 -0
- package/dist/src/semantic-tool-command-helpers.d.ts +7 -0
- package/dist/src/semantic-tool-command-helpers.js +29 -1
- package/dist/src/semantic-tool-command-helpers.js.map +1 -1
- package/dist/src/semantic-tool-descriptions.d.ts +26 -0
- package/dist/src/semantic-tool-descriptions.js +259 -0
- package/dist/src/semantic-tool-descriptions.js.map +1 -0
- package/dist/src/semantic-tool-list-projection.js +4 -0
- package/dist/src/semantic-tool-list-projection.js.map +1 -1
- package/dist/src/semantic-tool-presentation.js +5 -2
- package/dist/src/semantic-tool-presentation.js.map +1 -1
- package/dist/src/semantic-tool-runtime.js +50 -36
- package/dist/src/semantic-tool-runtime.js.map +1 -1
- package/dist/src/semantic-tool-schemas.d.ts +33 -0
- package/dist/src/semantic-tool-schemas.js +165 -31
- package/dist/src/semantic-tool-schemas.js.map +1 -1
- package/dist/src/terminal-action-contracts.d.ts +4 -0
- package/dist/src/terminal-action-contracts.js +695 -0
- package/dist/src/terminal-action-contracts.js.map +1 -0
- package/dist/src/terminal-action-projection.d.ts +1 -1
- package/dist/src/terminal-action-projection.js.map +1 -1
- package/dist/src/terminal-agent-bridge.d.ts +3 -0
- package/dist/src/terminal-agent-bridge.js +11 -0
- package/dist/src/terminal-agent-bridge.js.map +1 -1
- package/dist/src/terminal-composer-classifier.d.ts +1 -1
- package/dist/src/terminal-composer-classifier.js +31 -5
- package/dist/src/terminal-composer-classifier.js.map +1 -1
- package/dist/src/terminal-interaction-response-bridge.js +1 -1
- package/dist/src/terminal-interaction-response-bridge.js.map +1 -1
- package/dist/src/terminal-list-cli-adapter.js +7 -12
- package/dist/src/terminal-list-cli-adapter.js.map +1 -1
- package/dist/src/terminal-list-renderer.d.ts +8 -2
- package/dist/src/terminal-list-renderer.js +37 -400
- package/dist/src/terminal-list-renderer.js.map +1 -1
- package/dist/src/terminal-model-control-action-policy.d.ts +1 -1
- package/dist/src/terminal-model-control-availability.d.ts +1 -1
- package/dist/src/terminal-model-control-availability.js +1 -1
- package/dist/src/terminal-model-control-availability.js.map +1 -1
- package/dist/src/terminal-model-control-cli-adapter.d.ts +34 -0
- package/dist/src/terminal-model-control-cli-adapter.js +669 -0
- package/dist/src/terminal-model-control-cli-adapter.js.map +1 -0
- package/dist/src/terminal-model-control-contract.d.ts +198 -0
- package/dist/src/terminal-model-control-contract.js +15 -0
- package/dist/src/terminal-model-control-contract.js.map +1 -0
- package/dist/src/terminal-model-control-input.d.ts +29 -0
- package/dist/src/terminal-model-control-input.js +86 -0
- package/dist/src/terminal-model-control-input.js.map +1 -0
- package/dist/src/terminal-model-control-profile.d.ts +2 -0
- package/dist/src/terminal-model-control-profile.js +6 -0
- package/dist/src/terminal-model-control-profile.js.map +1 -1
- package/dist/src/terminal-model-control-subject.d.ts +52 -0
- package/dist/src/terminal-model-control-subject.js +73 -0
- package/dist/src/terminal-model-control-subject.js.map +1 -1
- package/dist/src/terminal-model-control-surface.d.ts +82 -0
- package/dist/src/terminal-model-control-surface.js +688 -0
- package/dist/src/terminal-model-control-surface.js.map +1 -0
- package/dist/src/terminal-model-control.d.ts +6 -270
- package/dist/src/terminal-model-control.js +11 -988
- package/dist/src/terminal-model-control.js.map +1 -1
- package/dist/src/terminal-model-selection.d.ts +33 -0
- package/dist/src/terminal-model-selection.js +143 -0
- package/dist/src/terminal-model-selection.js.map +1 -0
- package/dist/src/terminal-monitor-application-service.js +38 -59
- package/dist/src/terminal-monitor-application-service.js.map +1 -1
- package/dist/src/terminal-monitor-attention-store.d.ts +65 -0
- package/dist/src/terminal-monitor-attention-store.js +518 -0
- package/dist/src/terminal-monitor-attention-store.js.map +1 -0
- package/dist/src/terminal-monitor-collateral-recovery.d.ts +12 -0
- package/dist/src/terminal-monitor-collateral-recovery.js +415 -0
- package/dist/src/terminal-monitor-collateral-recovery.js.map +1 -0
- package/dist/src/terminal-monitor-decision-policy.d.ts +1 -1
- package/dist/src/terminal-monitor-interaction-projection.d.ts +19 -0
- package/dist/src/terminal-monitor-interaction-projection.js +48 -0
- package/dist/src/terminal-monitor-interaction-projection.js.map +1 -0
- package/dist/src/terminal-monitor-startup-recovery.d.ts +15 -0
- package/dist/src/terminal-monitor-startup-recovery.js +767 -0
- package/dist/src/terminal-monitor-startup-recovery.js.map +1 -0
- package/dist/src/terminal-monitor-state-cli-adapter.d.ts +2 -104
- package/dist/src/terminal-monitor-state-cli-adapter.js +28 -1640
- package/dist/src/terminal-monitor-state-cli-adapter.js.map +1 -1
- package/dist/src/terminal-monitor-state-contract.d.ts +108 -0
- package/dist/src/terminal-monitor-state-contract.js +8 -0
- package/dist/src/terminal-monitor-state-contract.js.map +1 -0
- package/dist/src/terminal-native-control-cli-contract.d.ts +16 -0
- package/dist/src/terminal-native-control-cli-contract.js +2 -0
- package/dist/src/terminal-native-control-cli-contract.js.map +1 -0
- package/dist/src/terminal-native-inspection-bridge.d.ts +4 -153
- package/dist/src/terminal-native-inspection-bridge.js +7 -646
- package/dist/src/terminal-native-inspection-bridge.js.map +1 -1
- package/dist/src/terminal-native-inspection-contract.d.ts +128 -0
- package/dist/src/terminal-native-inspection-contract.js +38 -0
- package/dist/src/terminal-native-inspection-contract.js.map +1 -0
- package/dist/src/terminal-native-inspection-profile.d.ts +15 -0
- package/dist/src/terminal-native-inspection-profile.js +185 -0
- package/dist/src/terminal-native-inspection-profile.js.map +1 -0
- package/dist/src/terminal-native-inspection-proof.d.ts +62 -0
- package/dist/src/terminal-native-inspection-proof.js +362 -0
- package/dist/src/terminal-native-inspection-proof.js.map +1 -0
- package/dist/src/terminal-permission-control-availability.d.ts +31 -0
- package/dist/src/terminal-permission-control-availability.js +50 -0
- package/dist/src/terminal-permission-control-availability.js.map +1 -0
- package/dist/src/terminal-permission-control-bridge.d.ts +16 -0
- package/dist/src/terminal-permission-control-bridge.js +93 -0
- package/dist/src/terminal-permission-control-bridge.js.map +1 -0
- package/dist/src/terminal-permission-control-cli-adapter.d.ts +31 -0
- package/dist/src/terminal-permission-control-cli-adapter.js +152 -0
- package/dist/src/terminal-permission-control-cli-adapter.js.map +1 -0
- package/dist/src/terminal-permission-control-list-projection.d.ts +23 -0
- package/dist/src/terminal-permission-control-list-projection.js +47 -0
- package/dist/src/terminal-permission-control-list-projection.js.map +1 -0
- package/dist/src/terminal-permission-control-runtime.d.ts +28 -0
- package/dist/src/terminal-permission-control-runtime.js +88 -0
- package/dist/src/terminal-permission-control-runtime.js.map +1 -0
- package/dist/src/terminal-permission-control.d.ts +69 -0
- package/dist/src/terminal-permission-control.js +217 -0
- package/dist/src/terminal-permission-control.js.map +1 -0
- package/dist/src/terminal-runtime-cli-adapter.d.ts +2 -1
- package/dist/src/terminal-runtime-cli-adapter.js +1 -1
- package/dist/src/terminal-runtime-cli-adapter.js.map +1 -1
- package/dist/src/terminal-submission-acceptance.d.ts +5 -148
- package/dist/src/terminal-submission-acceptance.js +21 -1845
- package/dist/src/terminal-submission-acceptance.js.map +1 -1
- package/dist/src/terminal-watch-anchor-capture.d.ts +9 -0
- package/dist/src/terminal-watch-anchor-capture.js +139 -0
- package/dist/src/terminal-watch-anchor-capture.js.map +1 -0
- package/dist/src/terminal-watch-cli-adapter.d.ts +3 -117
- package/dist/src/terminal-watch-cli-adapter.js +10 -1992
- package/dist/src/terminal-watch-cli-adapter.js.map +1 -1
- package/dist/src/terminal-watch-cli-contract.d.ts +117 -0
- package/dist/src/terminal-watch-cli-contract.js +2 -0
- package/dist/src/terminal-watch-cli-contract.js.map +1 -0
- package/dist/src/terminal-watch-fallback-observation.d.ts +15 -0
- package/dist/src/terminal-watch-fallback-observation.js +249 -0
- package/dist/src/terminal-watch-fallback-observation.js.map +1 -0
- package/dist/src/terminal-watch-interaction-observation.d.ts +26 -0
- package/dist/src/terminal-watch-interaction-observation.js +262 -0
- package/dist/src/terminal-watch-interaction-observation.js.map +1 -0
- package/dist/src/terminal-watch-observation-adapter.d.ts +4 -0
- package/dist/src/terminal-watch-observation-adapter.js +307 -0
- package/dist/src/terminal-watch-observation-adapter.js.map +1 -0
- package/dist/src/terminal-watch-observation-evidence.d.ts +25 -0
- package/dist/src/terminal-watch-observation-evidence.js +184 -0
- package/dist/src/terminal-watch-observation-evidence.js.map +1 -0
- package/dist/src/terminal-watch-response-authority.d.ts +6 -0
- package/dist/src/terminal-watch-response-authority.js +333 -0
- package/dist/src/terminal-watch-response-authority.js.map +1 -0
- package/dist/src/terminal-watch-response-cli-adapter.d.ts +3 -0
- package/dist/src/terminal-watch-response-cli-adapter.js +230 -0
- package/dist/src/terminal-watch-response-cli-adapter.js.map +1 -0
- package/dist/src/terminal-watch-terminal-identity.d.ts +39 -0
- package/dist/src/terminal-watch-terminal-identity.js +380 -0
- package/dist/src/terminal-watch-terminal-identity.js.map +1 -0
- package/docs/codex-permissions.md +95 -0
- package/openclaw.plugin.json +9 -1
- package/package.json +3 -2
- 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-
|
|
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":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EACL,6BAA6B,EAC9B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AAGpF,OAAO,EAAE,4BAA4B,EAAE,MAAM,
|
|
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;
|