@scotthuang/agent-knock-knock 0.12.12 → 0.12.13
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 +22 -0
- package/README.md +39 -26
- package/dist/src/approval-policy.d.ts +11 -2
- package/dist/src/approval-policy.js +33 -7
- package/dist/src/approval-policy.js.map +1 -1
- package/dist/src/claude-local-transcript-provider.d.ts +81 -0
- package/dist/src/claude-local-transcript-provider.js +854 -18
- package/dist/src/claude-local-transcript-provider.js.map +1 -1
- package/dist/src/cli-core.js +85 -0
- package/dist/src/cli-core.js.map +1 -1
- package/dist/src/deferred-foreground-authority-cli-adapter.js +90 -19
- package/dist/src/deferred-foreground-authority-cli-adapter.js.map +1 -1
- package/dist/src/deferred-foreground-transfer.js +3 -4
- package/dist/src/deferred-foreground-transfer.js.map +1 -1
- package/dist/src/openclaw-callback-transport.d.ts +5 -0
- package/dist/src/openclaw-callback-transport.js +1 -1
- package/dist/src/openclaw-callback-transport.js.map +1 -1
- package/dist/src/openclaw-plugin-callback-adapter.js +96 -14
- package/dist/src/openclaw-plugin-callback-adapter.js.map +1 -1
- package/dist/src/openclaw-plugin-command-adapter.js +548 -107
- package/dist/src/openclaw-plugin-command-adapter.js.map +1 -1
- package/dist/src/openclaw-plugin-helpers.d.ts +27 -4
- package/dist/src/openclaw-plugin-helpers.js +309 -44
- package/dist/src/openclaw-plugin-helpers.js.map +1 -1
- package/dist/src/openclaw-plugin-schemas.d.ts +44 -68
- package/dist/src/openclaw-plugin-schemas.js +63 -91
- package/dist/src/openclaw-plugin-schemas.js.map +1 -1
- package/dist/src/openclaw-plugin-supervisor.js +48 -10
- package/dist/src/openclaw-plugin-supervisor.js.map +1 -1
- package/dist/src/openclaw-private-authority-offers.d.ts +22 -0
- package/dist/src/openclaw-private-authority-offers.js +177 -0
- package/dist/src/openclaw-private-authority-offers.js.map +1 -0
- package/dist/src/store.d.ts +1 -0
- package/dist/src/store.js +3 -1
- package/dist/src/store.js.map +1 -1
- package/dist/src/terminal-action-projection.d.ts +19 -1
- package/dist/src/terminal-action-projection.js +23 -0
- package/dist/src/terminal-action-projection.js.map +1 -1
- package/dist/src/terminal-command-cli-adapter.d.ts +5 -0
- package/dist/src/terminal-command-cli-adapter.js +249 -89
- package/dist/src/terminal-command-cli-adapter.js.map +1 -1
- package/dist/src/terminal-dispatch-repository-cli-adapter.js +305 -79
- package/dist/src/terminal-dispatch-repository-cli-adapter.js.map +1 -1
- package/dist/src/terminal-list-cli-adapter.d.ts +31 -7
- package/dist/src/terminal-list-cli-adapter.js +285 -67
- package/dist/src/terminal-list-cli-adapter.js.map +1 -1
- package/dist/src/terminal-list-renderer.d.ts +2 -0
- package/dist/src/terminal-list-renderer.js +116 -41
- package/dist/src/terminal-list-renderer.js.map +1 -1
- package/dist/src/terminal-monitor-cli-adapter.js +1 -1
- package/dist/src/terminal-monitor-cli-adapter.js.map +1 -1
- package/dist/src/terminal-monitor-state-cli-adapter.js +6 -15
- package/dist/src/terminal-monitor-state-cli-adapter.js.map +1 -1
- package/dist/src/terminal-status-cli-adapter.d.ts +10 -0
- package/dist/src/terminal-status-cli-adapter.js +89 -7
- package/dist/src/terminal-status-cli-adapter.js.map +1 -1
- package/dist/src/terminal-submission-acceptance.d.ts +60 -1
- package/dist/src/terminal-submission-acceptance.js +560 -0
- package/dist/src/terminal-submission-acceptance.js.map +1 -1
- package/dist/src/terminal-watch-callback-cli-adapter.d.ts +20 -0
- package/dist/src/terminal-watch-callback-cli-adapter.js +55 -0
- package/dist/src/terminal-watch-callback-cli-adapter.js.map +1 -0
- package/dist/src/terminal-watch-cli-adapter.d.ts +64 -0
- package/dist/src/terminal-watch-cli-adapter.js +508 -0
- package/dist/src/terminal-watch-cli-adapter.js.map +1 -0
- package/dist/src/terminal-watch-service.d.ts +97 -0
- package/dist/src/terminal-watch-service.js +714 -0
- package/dist/src/terminal-watch-service.js.map +1 -0
- package/dist/src/terminal-watch-store.d.ts +149 -0
- package/dist/src/terminal-watch-store.js +861 -0
- package/dist/src/terminal-watch-store.js.map +1 -0
- package/docs/quickstart-herdr.md +8 -0
- package/docs/quickstart-tmux.md +33 -6
- package/openclaw.plugin.json +11 -3
- package/package.json +1 -1
- package/templates/openclaw-skills/agent-knock-knock/SKILL.md +57 -39
|
@@ -6,9 +6,149 @@ import { cliEnv, cliNow, cliNowMs, cliPid, cliSleepSync } from "./cli-runtime-co
|
|
|
6
6
|
import { atomicReplacePrivateJsonFile, fsyncDirectory } from "./durable-json-file.js";
|
|
7
7
|
import { createFileLockCliAdapter } from "./file-lock-cli-adapter.js";
|
|
8
8
|
import { defaultStoreDir, ensureDir } from "./store.js";
|
|
9
|
-
import { hasCanonicalTerminalEndpoint, terminalControlEvidence, terminalControlEvidenceMatches, terminalEndpointFromControlRef, terminalRuntimeResourceKey } from "./terminal-control-ref.js";
|
|
9
|
+
import { hasCanonicalTerminalEndpoint, terminalControlEvidence, terminalControlEvidenceMatches, terminalEndpointFromControlRef, terminalRuntimeResourceKey, tmuxTerminalRouteKey } from "./terminal-control-ref.js";
|
|
10
10
|
import { constructTerminalDispatchLedgerDocument, decodeTerminalDispatchLedgerDocument, terminalDispatchLedgerLooksLifecycle } from "./terminal-dispatch-ledger-codec.js";
|
|
11
11
|
import { isRecord, nonBlankString } from "./value-guards.js";
|
|
12
|
+
function terminalDispatchLedgerMatchesControl(ledger, terminalControl, options = {}) {
|
|
13
|
+
if (!ledger)
|
|
14
|
+
return false;
|
|
15
|
+
const evidence = ledger.terminal_endpoint !== undefined
|
|
16
|
+
? ledger.terminal_endpoint
|
|
17
|
+
: ledger.terminal_control;
|
|
18
|
+
return terminalControlEvidenceMatches(evidence, terminalControl, options);
|
|
19
|
+
}
|
|
20
|
+
function terminalDispatchLedgerProcessAnchor(ledger) {
|
|
21
|
+
const evidence = isRecord(ledger.terminal_endpoint)
|
|
22
|
+
? ledger.terminal_endpoint
|
|
23
|
+
: isRecord(ledger.terminal_control)
|
|
24
|
+
? ledger.terminal_control
|
|
25
|
+
: undefined;
|
|
26
|
+
const panePid = Number(evidence?.process_anchor_pid ?? evidence?.pane_pid ?? evidence?.panePid);
|
|
27
|
+
return Number.isSafeInteger(panePid) && panePid > 0 ? panePid : undefined;
|
|
28
|
+
}
|
|
29
|
+
function serializedTerminalControl(terminalControl) {
|
|
30
|
+
return {
|
|
31
|
+
kind: terminalControl.kind,
|
|
32
|
+
target: terminalControl.target,
|
|
33
|
+
socket_path: terminalControl.socketPath ?? null,
|
|
34
|
+
pane_pid: terminalControl.panePid ?? null,
|
|
35
|
+
current_path: terminalControl.currentPath ?? null,
|
|
36
|
+
...(terminalControl.kind === "herdr"
|
|
37
|
+
? {
|
|
38
|
+
session: terminalControl.session,
|
|
39
|
+
session_dir: terminalControl.sessionDir ?? null,
|
|
40
|
+
workspace_id: terminalControl.workspaceId,
|
|
41
|
+
tab_id: terminalControl.tabId,
|
|
42
|
+
pane_id: terminalControl.paneId,
|
|
43
|
+
terminal_id: terminalControl.terminalId
|
|
44
|
+
}
|
|
45
|
+
: {})
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Recover the only v1 document that can legitimately exist at a canonical
|
|
50
|
+
* path: the durable image left after the legacy-path rename and before its v2
|
|
51
|
+
* rewrite. The canonical filename supplies stable resource identity, while
|
|
52
|
+
* the self-key, provider endpoint, and exact process anchor prove that the v1
|
|
53
|
+
* bytes still own the current tmux incarnation. No legacy-path document is
|
|
54
|
+
* eligible for this route-insensitive recovery.
|
|
55
|
+
*/
|
|
56
|
+
function normalizeInterruptedCanonicalV1(ledger, terminalControl) {
|
|
57
|
+
if (ledger.version !== 1 ||
|
|
58
|
+
terminalControl.kind !== "tmux" ||
|
|
59
|
+
!hasCanonicalTerminalEndpoint(terminalControl)) {
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
const storedControl = isRecord(ledger.terminal_control)
|
|
63
|
+
? ledger.terminal_control
|
|
64
|
+
: undefined;
|
|
65
|
+
const storedTarget = nonBlankString(storedControl?.target);
|
|
66
|
+
const storedSocketValue = storedControl?.socket_path;
|
|
67
|
+
const storedSocket = storedSocketValue === null
|
|
68
|
+
? undefined
|
|
69
|
+
: nonBlankString(storedSocketValue);
|
|
70
|
+
const storedAnchor = storedControl?.pane_pid;
|
|
71
|
+
const currentEndpoint = terminalEndpointFromControlRef(terminalControl);
|
|
72
|
+
const currentAnchor = currentEndpoint.processAnchorPid;
|
|
73
|
+
if (storedControl?.kind !== "tmux" ||
|
|
74
|
+
!storedTarget ||
|
|
75
|
+
!(storedSocketValue === null || storedSocket !== undefined) ||
|
|
76
|
+
storedSocket !== terminalControl.socketPath ||
|
|
77
|
+
typeof storedAnchor !== "number" ||
|
|
78
|
+
!Number.isSafeInteger(storedAnchor) ||
|
|
79
|
+
storedAnchor <= 0 ||
|
|
80
|
+
!Number.isSafeInteger(currentAnchor) ||
|
|
81
|
+
currentAnchor === undefined ||
|
|
82
|
+
currentAnchor <= 0 ||
|
|
83
|
+
storedAnchor !== currentAnchor) {
|
|
84
|
+
return undefined;
|
|
85
|
+
}
|
|
86
|
+
const storedRouteControl = {
|
|
87
|
+
kind: "tmux",
|
|
88
|
+
target: storedTarget,
|
|
89
|
+
socketPath: storedSocket,
|
|
90
|
+
session: storedTarget.split(":", 1)[0] ?? storedTarget,
|
|
91
|
+
window: 0,
|
|
92
|
+
pane: 0,
|
|
93
|
+
panePid: storedAnchor,
|
|
94
|
+
capabilities: []
|
|
95
|
+
};
|
|
96
|
+
if (nonBlankString(ledger.terminal_key) !==
|
|
97
|
+
terminalRuntimeResourceKey(storedRouteControl, { legacy: true })) {
|
|
98
|
+
return undefined;
|
|
99
|
+
}
|
|
100
|
+
const historicalEndpoint = {
|
|
101
|
+
...terminalControlEvidence(terminalControl),
|
|
102
|
+
route_key: tmuxTerminalRouteKey(currentEndpoint.identity.endpointKey, storedTarget, storedSocket),
|
|
103
|
+
target: storedTarget,
|
|
104
|
+
socket_path: storedSocket ?? null,
|
|
105
|
+
pane_pid: storedAnchor,
|
|
106
|
+
current_path: storedControl.current_path ?? null
|
|
107
|
+
};
|
|
108
|
+
return constructTerminalDispatchLedgerDocument({
|
|
109
|
+
previousLedger: ledger,
|
|
110
|
+
incomingLedger: ledger,
|
|
111
|
+
version: 2,
|
|
112
|
+
terminalKey: terminalRuntimeResourceKey(terminalControl),
|
|
113
|
+
// Keep the route that actually accepted the input for one read-only
|
|
114
|
+
// recovery projection. The next save advances only the top-level owner to
|
|
115
|
+
// the current route while its historical receipt remains attributable to
|
|
116
|
+
// this exact old route.
|
|
117
|
+
terminalControl: { ...storedControl },
|
|
118
|
+
terminalEndpoint: historicalEndpoint
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
function decodeLocatedTerminalDispatchLedger(source, options) {
|
|
122
|
+
let ledger;
|
|
123
|
+
try {
|
|
124
|
+
ledger = decodeTerminalDispatchLedgerDocument(source, {
|
|
125
|
+
ledgerPath: options.filePath,
|
|
126
|
+
terminalControl: options.terminalControl,
|
|
127
|
+
legacyTerminalKey: options.legacyTerminalKey,
|
|
128
|
+
canonicalTerminalKey: options.canonicalTerminalKey
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
if (!options.allowInterruptedCanonicalV1)
|
|
133
|
+
throw error;
|
|
134
|
+
const parsed = JSON.parse(source);
|
|
135
|
+
if (!isRecord(parsed))
|
|
136
|
+
throw error;
|
|
137
|
+
const normalized = normalizeInterruptedCanonicalV1(parsed, options.terminalControl);
|
|
138
|
+
if (!normalized)
|
|
139
|
+
throw error;
|
|
140
|
+
return normalized;
|
|
141
|
+
}
|
|
142
|
+
if (ledger.version !== 1 ||
|
|
143
|
+
!options.allowInterruptedCanonicalV1) {
|
|
144
|
+
return ledger;
|
|
145
|
+
}
|
|
146
|
+
const normalized = normalizeInterruptedCanonicalV1(ledger, options.terminalControl);
|
|
147
|
+
if (!normalized) {
|
|
148
|
+
throw new Error(`terminal dispatch ledger is invalid: ${options.filePath}`);
|
|
149
|
+
}
|
|
150
|
+
return normalized;
|
|
151
|
+
}
|
|
12
152
|
/**
|
|
13
153
|
* Own the raw filesystem, lock-path, and byte-level persistence boundary for
|
|
14
154
|
* ordinary terminal dispatch ledgers. Product recovery policy stays outside
|
|
@@ -80,12 +220,6 @@ export function createTerminalDispatchRepositoryCliAdapter() {
|
|
|
80
220
|
: runtimeKey(terminalControl);
|
|
81
221
|
return path.join(ledgerDir, `terminal-dispatch-${key}.json`);
|
|
82
222
|
}
|
|
83
|
-
function ledgerPaths(terminalControl) {
|
|
84
|
-
return [...new Set([
|
|
85
|
-
ledgerPath(terminalControl),
|
|
86
|
-
ledgerPath(terminalControl, { legacy: true })
|
|
87
|
-
])];
|
|
88
|
-
}
|
|
89
223
|
function pathExistsNoFollow(candidate) {
|
|
90
224
|
try {
|
|
91
225
|
fs.lstatSync(candidate);
|
|
@@ -97,45 +231,183 @@ export function createTerminalDispatchRepositoryCliAdapter() {
|
|
|
97
231
|
throw error;
|
|
98
232
|
}
|
|
99
233
|
}
|
|
100
|
-
function
|
|
101
|
-
const existingPaths = ledgerPaths(terminalControl).filter(pathExistsNoFollow);
|
|
102
|
-
if (existingPaths.length === 0)
|
|
103
|
-
return undefined;
|
|
104
|
-
if (existingPaths.length > 1) {
|
|
105
|
-
throw new Error("terminal dispatch ledger has conflicting canonical and legacy owners: " +
|
|
106
|
-
existingPaths.join(", "));
|
|
107
|
-
}
|
|
108
|
-
const filePath = existingPaths[0];
|
|
234
|
+
function readLedger(terminalControl, filePath, location) {
|
|
109
235
|
const stat = fs.lstatSync(filePath);
|
|
110
236
|
if (stat.isSymbolicLink() || !stat.isFile()) {
|
|
111
237
|
throw new Error(`terminal dispatch ledger is not a regular file: ${filePath}`);
|
|
112
238
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
239
|
+
const source = fs.readFileSync(filePath, "utf8");
|
|
240
|
+
return {
|
|
241
|
+
filePath,
|
|
242
|
+
location,
|
|
243
|
+
ledger: decodeLocatedTerminalDispatchLedger(source, {
|
|
244
|
+
filePath,
|
|
245
|
+
terminalControl,
|
|
246
|
+
legacyTerminalKey: legacyRuntimeKey(terminalControl),
|
|
247
|
+
canonicalTerminalKey: runtimeKey(terminalControl),
|
|
248
|
+
allowInterruptedCanonicalV1: location === "canonical" &&
|
|
249
|
+
filePath === ledgerPath(terminalControl) &&
|
|
250
|
+
hasCanonicalTerminalEndpoint(terminalControl)
|
|
251
|
+
}),
|
|
252
|
+
source
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
function anchorRelation(ledger, terminalControl) {
|
|
256
|
+
const ledgerAnchor = terminalDispatchLedgerProcessAnchor(ledger);
|
|
257
|
+
const currentAnchor = terminalEndpointFromControlRef(terminalControl).processAnchorPid;
|
|
258
|
+
if (ledgerAnchor === undefined || currentAnchor === undefined) {
|
|
259
|
+
return "unknown";
|
|
260
|
+
}
|
|
261
|
+
return ledgerAnchor === currentAnchor ? "same" : "different";
|
|
262
|
+
}
|
|
263
|
+
function canonicalLedgerMatchesCurrentIncarnation(ledger, terminalControl) {
|
|
264
|
+
return ledger.version === 2 &&
|
|
265
|
+
anchorRelation(ledger, terminalControl) === "same" &&
|
|
266
|
+
terminalControlEvidenceMatches(ledger.terminal_endpoint, terminalControl, { requireProcessAnchor: true });
|
|
267
|
+
}
|
|
268
|
+
function classifyOwner(located, terminalControl) {
|
|
269
|
+
if ((located.location === "canonical" && located.ledger.version !== 2) ||
|
|
270
|
+
(located.location === "legacy" && located.ledger.version !== 1)) {
|
|
271
|
+
return "ambiguous_conflict";
|
|
272
|
+
}
|
|
273
|
+
const relation = anchorRelation(located.ledger, terminalControl);
|
|
274
|
+
if (relation === "different")
|
|
275
|
+
return "stale_history";
|
|
276
|
+
if (relation === "unknown")
|
|
277
|
+
return "ambiguous_conflict";
|
|
278
|
+
if (located.location === "canonical" &&
|
|
279
|
+
!canonicalLedgerMatchesCurrentIncarnation(located.ledger, terminalControl)) {
|
|
280
|
+
return "ambiguous_conflict";
|
|
281
|
+
}
|
|
282
|
+
return "current_owner";
|
|
283
|
+
}
|
|
284
|
+
function classifyDualLedgers(canonical, legacy, terminalControl) {
|
|
285
|
+
const canonicalAnchor = terminalDispatchLedgerProcessAnchor(canonical.ledger);
|
|
286
|
+
const legacyAnchor = terminalDispatchLedgerProcessAnchor(legacy.ledger);
|
|
287
|
+
if (canonicalAnchor === undefined ||
|
|
288
|
+
legacyAnchor === undefined ||
|
|
289
|
+
canonicalAnchor === legacyAnchor) {
|
|
290
|
+
return { classification: "ambiguous_conflict" };
|
|
291
|
+
}
|
|
292
|
+
const canonicalClassification = classifyOwner(canonical, terminalControl);
|
|
293
|
+
const legacyClassification = classifyOwner(legacy, terminalControl);
|
|
294
|
+
if (canonicalClassification === "current_owner" &&
|
|
295
|
+
legacyClassification === "stale_history") {
|
|
296
|
+
return { classification: "current_owner", owner: canonical };
|
|
297
|
+
}
|
|
298
|
+
if (canonicalClassification === "stale_history" &&
|
|
299
|
+
legacyClassification === "current_owner") {
|
|
300
|
+
return {
|
|
301
|
+
classification: "current_owner",
|
|
302
|
+
owner: legacy,
|
|
303
|
+
staleCanonical: canonical
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
if (canonicalClassification === "stale_history" &&
|
|
307
|
+
legacyClassification === "stale_history") {
|
|
308
|
+
return { classification: "stale_history" };
|
|
309
|
+
}
|
|
310
|
+
return { classification: "ambiguous_conflict" };
|
|
311
|
+
}
|
|
312
|
+
function conflictingOwnersError(paths) {
|
|
313
|
+
return new Error("terminal dispatch ledger has conflicting canonical and legacy owners: " +
|
|
314
|
+
paths.join(", "));
|
|
315
|
+
}
|
|
316
|
+
function selectLedger(terminalControl) {
|
|
317
|
+
const canonicalPath = ledgerPath(terminalControl);
|
|
318
|
+
const legacyPath = ledgerPath(terminalControl, { legacy: true });
|
|
319
|
+
if (canonicalPath === legacyPath) {
|
|
320
|
+
return {
|
|
321
|
+
selected: pathExistsNoFollow(canonicalPath)
|
|
322
|
+
? readLedger(terminalControl, canonicalPath, "canonical")
|
|
323
|
+
: undefined
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
const canonicalExists = pathExistsNoFollow(canonicalPath);
|
|
327
|
+
const legacyExists = pathExistsNoFollow(legacyPath);
|
|
328
|
+
if (!canonicalExists && !legacyExists)
|
|
329
|
+
return {};
|
|
330
|
+
const canonical = canonicalExists
|
|
331
|
+
? readLedger(terminalControl, canonicalPath, "canonical")
|
|
332
|
+
: undefined;
|
|
333
|
+
const legacy = legacyExists
|
|
334
|
+
? readLedger(terminalControl, legacyPath, "legacy")
|
|
335
|
+
: undefined;
|
|
336
|
+
if (canonical && legacy) {
|
|
337
|
+
const classification = classifyDualLedgers(canonical, legacy, terminalControl);
|
|
338
|
+
if (classification.classification === "current_owner") {
|
|
339
|
+
return {
|
|
340
|
+
selected: classification.owner,
|
|
341
|
+
staleCanonical: classification.staleCanonical
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
if (classification.classification === "stale_history")
|
|
345
|
+
return {};
|
|
346
|
+
throw conflictingOwnersError([canonicalPath, legacyPath]);
|
|
347
|
+
}
|
|
348
|
+
if (canonical)
|
|
349
|
+
return { selected: canonical };
|
|
350
|
+
if (legacy &&
|
|
351
|
+
hasCanonicalTerminalEndpoint(terminalControl)) {
|
|
352
|
+
const relation = anchorRelation(legacy.ledger, terminalControl);
|
|
353
|
+
if (relation === "different") {
|
|
354
|
+
// The selector has been reused by a different terminal process. Keep
|
|
355
|
+
// the old artifact as history, but it is not an owner of the current
|
|
356
|
+
// stable endpoint and must never be promoted into its canonical path.
|
|
357
|
+
return {};
|
|
358
|
+
}
|
|
359
|
+
if (relation === "unknown") {
|
|
360
|
+
throw new Error("terminal dispatch legacy owner has no exact process anchor: " +
|
|
361
|
+
legacyPath);
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
return { selected: legacy };
|
|
365
|
+
}
|
|
366
|
+
function load(terminalControl) {
|
|
367
|
+
return selectLedger(terminalControl).selected?.ledger;
|
|
119
368
|
}
|
|
120
369
|
function save(terminalControl, ledger) {
|
|
121
|
-
const
|
|
122
|
-
const
|
|
123
|
-
|
|
370
|
+
const selection = selectLedger(terminalControl);
|
|
371
|
+
const selected = selection.selected;
|
|
372
|
+
const previousLedger = selected?.ledger;
|
|
373
|
+
let filePath = selected?.filePath ?? ledgerPath(terminalControl);
|
|
124
374
|
const canonicalPath = ledgerPath(terminalControl);
|
|
125
375
|
const legacyPath = ledgerPath(terminalControl, { legacy: true });
|
|
376
|
+
const preserveLegacyFormat = !hasCanonicalTerminalEndpoint(terminalControl);
|
|
377
|
+
const useCanonicalFormat = hasCanonicalTerminalEndpoint(terminalControl) && !preserveLegacyFormat;
|
|
378
|
+
const nextLedger = constructTerminalDispatchLedgerDocument({
|
|
379
|
+
previousLedger,
|
|
380
|
+
incomingLedger: ledger,
|
|
381
|
+
version: useCanonicalFormat ? 2 : 1,
|
|
382
|
+
terminalKey: preserveLegacyFormat
|
|
383
|
+
? legacyRuntimeKey(terminalControl)
|
|
384
|
+
: runtimeKey(terminalControl),
|
|
385
|
+
terminalControl: serializedTerminalControl(terminalControl),
|
|
386
|
+
...(useCanonicalFormat
|
|
387
|
+
? { terminalEndpoint: terminalControlEvidence(terminalControl) }
|
|
388
|
+
: {})
|
|
389
|
+
});
|
|
126
390
|
ensureDir(path.dirname(canonicalPath));
|
|
127
391
|
if (hasCanonicalTerminalEndpoint(terminalControl) &&
|
|
392
|
+
selected?.location === "legacy" &&
|
|
128
393
|
filePath === legacyPath &&
|
|
129
394
|
legacyPath !== canonicalPath) {
|
|
130
395
|
if (pathExistsNoFollow(canonicalPath)) {
|
|
131
|
-
|
|
132
|
-
|
|
396
|
+
const staleCanonical = selection.staleCanonical;
|
|
397
|
+
const currentCanonical = readLedger(terminalControl, canonicalPath, "canonical");
|
|
398
|
+
if (!staleCanonical ||
|
|
399
|
+
currentCanonical.source !== staleCanonical.source) {
|
|
400
|
+
throw conflictingOwnersError([canonicalPath, legacyPath]);
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
const currentLegacy = readLedger(terminalControl, legacyPath, "legacy");
|
|
404
|
+
if (currentLegacy.source !== selected.source) {
|
|
405
|
+
throw conflictingOwnersError([canonicalPath, legacyPath]);
|
|
133
406
|
}
|
|
134
407
|
fs.renameSync(legacyPath, canonicalPath);
|
|
135
408
|
fsyncDirectory(path.dirname(canonicalPath));
|
|
136
409
|
filePath = canonicalPath;
|
|
137
410
|
}
|
|
138
|
-
const preserveLegacyFormat = !hasCanonicalTerminalEndpoint(terminalControl);
|
|
139
411
|
ensureDir(path.dirname(filePath));
|
|
140
412
|
if (pathExistsNoFollow(filePath)) {
|
|
141
413
|
const stat = fs.lstatSync(filePath);
|
|
@@ -143,35 +415,6 @@ export function createTerminalDispatchRepositoryCliAdapter() {
|
|
|
143
415
|
throw new Error(`terminal dispatch ledger is not a regular file: ${filePath}`);
|
|
144
416
|
}
|
|
145
417
|
}
|
|
146
|
-
const useCanonicalFormat = hasCanonicalTerminalEndpoint(terminalControl) && !preserveLegacyFormat;
|
|
147
|
-
const nextLedger = constructTerminalDispatchLedgerDocument({
|
|
148
|
-
previousLedger,
|
|
149
|
-
incomingLedger: ledger,
|
|
150
|
-
version: useCanonicalFormat ? 2 : 1,
|
|
151
|
-
terminalKey: preserveLegacyFormat
|
|
152
|
-
? legacyRuntimeKey(terminalControl)
|
|
153
|
-
: runtimeKey(terminalControl),
|
|
154
|
-
terminalControl: {
|
|
155
|
-
kind: terminalControl.kind,
|
|
156
|
-
target: terminalControl.target,
|
|
157
|
-
socket_path: terminalControl.socketPath ?? null,
|
|
158
|
-
pane_pid: terminalControl.panePid ?? null,
|
|
159
|
-
current_path: terminalControl.currentPath ?? null,
|
|
160
|
-
...(terminalControl.kind === "herdr"
|
|
161
|
-
? {
|
|
162
|
-
session: terminalControl.session,
|
|
163
|
-
session_dir: terminalControl.sessionDir ?? null,
|
|
164
|
-
workspace_id: terminalControl.workspaceId,
|
|
165
|
-
tab_id: terminalControl.tabId,
|
|
166
|
-
pane_id: terminalControl.paneId,
|
|
167
|
-
terminal_id: terminalControl.terminalId
|
|
168
|
-
}
|
|
169
|
-
: {})
|
|
170
|
-
},
|
|
171
|
-
...(useCanonicalFormat
|
|
172
|
-
? { terminalEndpoint: terminalControlEvidence(terminalControl) }
|
|
173
|
-
: {})
|
|
174
|
-
});
|
|
175
418
|
const temporaryPath = `${filePath}.${cliPid()}.${randomUUID()}.tmp`;
|
|
176
419
|
atomicReplacePrivateJsonFile(filePath, nextLedger, {
|
|
177
420
|
temporaryPath,
|
|
@@ -202,35 +445,18 @@ export function createTerminalDispatchRepositoryCliAdapter() {
|
|
|
202
445
|
});
|
|
203
446
|
return true;
|
|
204
447
|
}
|
|
205
|
-
function matchesControl(ledger, terminalControl, options = {}) {
|
|
206
|
-
if (!ledger)
|
|
207
|
-
return false;
|
|
208
|
-
const evidence = ledger.terminal_endpoint !== undefined
|
|
209
|
-
? ledger.terminal_endpoint
|
|
210
|
-
: ledger.terminal_control;
|
|
211
|
-
return terminalControlEvidenceMatches(evidence, terminalControl, options);
|
|
212
|
-
}
|
|
213
|
-
function processAnchor(ledger) {
|
|
214
|
-
const evidence = isRecord(ledger.terminal_endpoint)
|
|
215
|
-
? ledger.terminal_endpoint
|
|
216
|
-
: isRecord(ledger.terminal_control)
|
|
217
|
-
? ledger.terminal_control
|
|
218
|
-
: undefined;
|
|
219
|
-
const panePid = Number(evidence?.process_anchor_pid ?? evidence?.pane_pid ?? evidence?.panePid);
|
|
220
|
-
return Number.isSafeInteger(panePid) && panePid > 0 ? panePid : undefined;
|
|
221
|
-
}
|
|
222
448
|
function reconcileIncarnation(terminalControl, ledger) {
|
|
223
449
|
if (!ledger || ledger.status === "resolved")
|
|
224
450
|
return ledger;
|
|
225
451
|
if (terminalDispatchLedgerLooksLifecycle(ledger))
|
|
226
452
|
return ledger;
|
|
227
|
-
if (!
|
|
453
|
+
if (!terminalDispatchLedgerMatchesControl(ledger, terminalControl, {
|
|
228
454
|
requireProcessAnchor: false
|
|
229
455
|
}) ||
|
|
230
|
-
|
|
456
|
+
terminalDispatchLedgerMatchesControl(ledger, terminalControl)) {
|
|
231
457
|
return ledger;
|
|
232
458
|
}
|
|
233
|
-
const previousAnchor =
|
|
459
|
+
const previousAnchor = terminalDispatchLedgerProcessAnchor(ledger);
|
|
234
460
|
const currentAnchor = terminalEndpointFromControlRef(terminalControl).processAnchorPid;
|
|
235
461
|
save(terminalControl, {
|
|
236
462
|
...ledger,
|
|
@@ -250,8 +476,8 @@ export function createTerminalDispatchRepositoryCliAdapter() {
|
|
|
250
476
|
restore,
|
|
251
477
|
resolve,
|
|
252
478
|
reconcileIncarnation,
|
|
253
|
-
matchesControl,
|
|
254
|
-
processAnchor
|
|
479
|
+
matchesControl: terminalDispatchLedgerMatchesControl,
|
|
480
|
+
processAnchor: terminalDispatchLedgerProcessAnchor
|
|
255
481
|
});
|
|
256
482
|
}
|
|
257
483
|
//# sourceMappingURL=terminal-dispatch-repository-cli-adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-dispatch-repository-cli-adapter.js","sourceRoot":"","sources":["../../src/terminal-dispatch-repository-cli-adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"terminal-dispatch-repository-cli-adapter.js","sourceRoot":"","sources":["../../src/terminal-dispatch-repository-cli-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import { type HumanObservedHandoffTargetSnapshot, type ManagedSessionState } fro
|
|
|
5
5
|
import { type Conversation } from "./protocol.js";
|
|
6
6
|
import { type TerminalAgentAdapterRegistry, type TerminalControlRef, type TerminalRuntimeIdentity } from "./terminal-agent-adapter.js";
|
|
7
7
|
import { TerminalAgentBridge, type ResolvedTerminalConversation } from "./terminal-agent-bridge.js";
|
|
8
|
+
import { type TerminalDispatchOwnership } from "./terminal-action-projection.js";
|
|
8
9
|
import { type CodexAllowedCompanionSet, type CodexSendAuthorityContext, type DeferredCodexForegroundDispatchSnapshot } from "./terminal-authority-policy.js";
|
|
9
10
|
import { type TerminalNativeIdentity, type TerminalNativeIdentityObservation } from "./terminal-binding-authority.js";
|
|
10
11
|
import { type TerminalScopedCodexApprovalBoundary, type TerminalScopedCodexApprovalPromptSnapshot } from "./terminal-scoped-approval-authority.js";
|
|
@@ -70,7 +71,7 @@ interface DeferredCodexAuthorityObservation {
|
|
|
70
71
|
sourceAbandonmentFingerprint?: string;
|
|
71
72
|
exactSource: boolean;
|
|
72
73
|
}
|
|
73
|
-
interface TerminalListScanEntry {
|
|
74
|
+
export interface TerminalListScanEntry {
|
|
74
75
|
agent?: string;
|
|
75
76
|
activity_state?: string;
|
|
76
77
|
cwd?: string;
|
|
@@ -83,18 +84,27 @@ interface TerminalListScanEntry {
|
|
|
83
84
|
workspace?: string;
|
|
84
85
|
[field: string]: unknown;
|
|
85
86
|
}
|
|
86
|
-
interface TerminalListScan {
|
|
87
|
+
export interface TerminalListScan {
|
|
87
88
|
terminalControlled: TerminalListScanEntry[];
|
|
88
89
|
summary: {
|
|
89
90
|
error?: string;
|
|
90
91
|
[field: string]: unknown;
|
|
91
92
|
};
|
|
92
93
|
}
|
|
93
|
-
|
|
94
|
-
state: "
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
94
|
+
export type ExactTerminalListObservation = {
|
|
95
|
+
state: "available";
|
|
96
|
+
rawTerminal: TerminalListScanEntry;
|
|
97
|
+
terminal: TerminalListScanEntry;
|
|
98
|
+
summary: TerminalListScan["summary"];
|
|
99
|
+
} | {
|
|
100
|
+
state: "absent";
|
|
101
|
+
summary: TerminalListScan["summary"];
|
|
102
|
+
} | {
|
|
103
|
+
state: "unavailable";
|
|
104
|
+
reason?: string;
|
|
105
|
+
summary: TerminalListScan["summary"];
|
|
106
|
+
};
|
|
107
|
+
type TerminalDispatchOwnershipResult = TerminalDispatchOwnership<Conversation, JsonObject>;
|
|
98
108
|
type TerminalScopedCodexApprovalResolution = {
|
|
99
109
|
state: "unmanaged";
|
|
100
110
|
} | {
|
|
@@ -160,6 +170,15 @@ export interface TerminalListStoreObservationPorts {
|
|
|
160
170
|
isVerifiedDeadTerminalAgentProcess(conversation: Conversation | JsonObject): boolean;
|
|
161
171
|
loadTerminalBridgeDispatchLedger(terminalControl: TerminalControlRef): TerminalDispatchLedgerDocument | undefined;
|
|
162
172
|
loadTerminalDispatchLedgerOwner(ledger: TerminalDispatchLedgerDocument): Conversation | undefined;
|
|
173
|
+
listTerminalWatches?(storeDir: string, options?: {
|
|
174
|
+
includeAll?: boolean;
|
|
175
|
+
}): JsonObject[];
|
|
176
|
+
scanTerminalWatchesForExactObservation?(storeDir: string, options?: {
|
|
177
|
+
includeAll?: boolean;
|
|
178
|
+
}): {
|
|
179
|
+
watches: JsonObject[];
|
|
180
|
+
activeOverlayTrusted: boolean;
|
|
181
|
+
};
|
|
163
182
|
managedSessionStoreDirForConversation(conversation: Conversation): string | undefined;
|
|
164
183
|
managedTurnsForSession(storeDir: string, sessionId: string): Conversation[];
|
|
165
184
|
matchesConfiguredWorkspace(configured: unknown, observed: unknown): boolean;
|
|
@@ -230,7 +249,12 @@ export interface TerminalListCliFacade {
|
|
|
230
249
|
options: TerminalListCliOptions;
|
|
231
250
|
agentFilter?: ExecutorKind;
|
|
232
251
|
statusFilter?: string;
|
|
252
|
+
terminalId?: string;
|
|
233
253
|
}): Promise<TerminalListScan>;
|
|
254
|
+
observeExactTerminal(request: {
|
|
255
|
+
options: TerminalListCliOptions;
|
|
256
|
+
terminalId: string;
|
|
257
|
+
}): Promise<ExactTerminalListObservation>;
|
|
234
258
|
provisionalManagedBindingTurnCount(storeDir: string, session: ManagedSessionState): number | undefined;
|
|
235
259
|
managedSessionHasUnresolvedNativeTransition(storeDir: string, session: ManagedSessionState): boolean;
|
|
236
260
|
managedSessionHasAnyNativeTransition(storeDir: string, session: ManagedSessionState): boolean;
|