mandala-computer-mcp 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mandala-computer-mcp might be problematic. Click here for more details.
- package/README.md +102 -10
- package/dist/api.d.ts +19 -6
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +213 -31
- package/dist/api.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +113 -8
- package/dist/cli.js.map +1 -1
- package/dist/errors.d.ts +60 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +71 -2
- package/dist/errors.js.map +1 -1
- package/dist/events.d.ts +17 -2
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +104 -13
- package/dist/events.js.map +1 -1
- package/dist/format.d.ts +16 -0
- package/dist/format.d.ts.map +1 -1
- package/dist/format.js +11 -1
- package/dist/format.js.map +1 -1
- package/dist/http-body.d.ts +17 -0
- package/dist/http-body.d.ts.map +1 -0
- package/dist/http-body.js +48 -0
- package/dist/http-body.js.map +1 -0
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +177 -51
- package/dist/http.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/paths.d.ts +22 -13
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +68 -16
- package/dist/paths.js.map +1 -1
- package/dist/poll.d.ts +103 -0
- package/dist/poll.d.ts.map +1 -0
- package/dist/poll.js +129 -0
- package/dist/poll.js.map +1 -0
- package/dist/server.d.ts +1 -1
- package/dist/server.js +1 -1
- package/dist/tools/agent.d.ts.map +1 -1
- package/dist/tools/agent.js +14 -2
- package/dist/tools/agent.js.map +1 -1
- package/dist/tools/computers.d.ts.map +1 -1
- package/dist/tools/computers.js +228 -49
- package/dist/tools/computers.js.map +1 -1
- package/dist/tools/events.d.ts.map +1 -1
- package/dist/tools/events.js +224 -39
- package/dist/tools/events.js.map +1 -1
- package/dist/tools/guest.d.ts.map +1 -1
- package/dist/tools/guest.js +223 -30
- package/dist/tools/guest.js.map +1 -1
- package/dist/tools/input.d.ts.map +1 -1
- package/dist/tools/input.js +29 -3
- package/dist/tools/input.js.map +1 -1
- package/dist/tools/snapshots.d.ts.map +1 -1
- package/dist/tools/snapshots.js +478 -20
- package/dist/tools/snapshots.js.map +1 -1
- package/dist/tools/templates.d.ts.map +1 -1
- package/dist/tools/templates.js +50 -11
- package/dist/tools/templates.js.map +1 -1
- package/dist/tools/webhooks.d.ts.map +1 -1
- package/dist/tools/webhooks.js +116 -17
- package/dist/tools/webhooks.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/tools/events.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/tools/events.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AA2c5C,eAAO,MAAM,cAAc,EAAE,SA49B5B,CAAC"}
|
package/dist/tools/events.js
CHANGED
|
@@ -23,7 +23,7 @@ const KNOWN_TYPES = [
|
|
|
23
23
|
'window.focused',
|
|
24
24
|
'window.blurred',
|
|
25
25
|
'clipboard.changed',
|
|
26
|
-
// The one type nobody is sent unasked (
|
|
26
|
+
// The one type nobody is sent unasked (OPL-3927). It is here so a
|
|
27
27
|
// model reading this list knows it exists; a wait that names it and nothing
|
|
28
28
|
// else, on a stream watching nothing, is answered with the sentence that says
|
|
29
29
|
// how to make one arrive rather than with a timeout.
|
|
@@ -56,6 +56,8 @@ const KNOWN_TYPES = [
|
|
|
56
56
|
const MAX_WAIT_S = 55;
|
|
57
57
|
/** How long a first call gives the socket to reach its opening frame. */
|
|
58
58
|
const ATTACH_MS = 20_000;
|
|
59
|
+
/** Optional context must not hold an already-consumed event answer indefinitely. */
|
|
60
|
+
const RECONCILE_MS = 2_000;
|
|
59
61
|
/**
|
|
60
62
|
* Wait for a subscription to say something about itself, inside a budget.
|
|
61
63
|
*
|
|
@@ -93,20 +95,87 @@ async function attached(sub, cancel, deadline) {
|
|
|
93
95
|
* the caller already has, and a windows listing that 409s because the guest is
|
|
94
96
|
* busy must not turn a delivered event into a failed tool call.
|
|
95
97
|
*/
|
|
96
|
-
async function reconcile(session, id,
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
api.json('GET', P.computer(id)),
|
|
98
|
+
async function reconcile(session, id, cancel, deadline) {
|
|
99
|
+
const signal = AbortSignal.any([
|
|
100
|
+
AbortSignal.timeout(RECONCILE_MS),
|
|
101
|
+
...(cancel ? [cancel] : []),
|
|
102
|
+
...(deadline ? [deadline] : []),
|
|
102
103
|
]);
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
104
|
+
const state = {};
|
|
105
|
+
if (!signal.aborted) {
|
|
106
|
+
const api = session.api.with(signal);
|
|
107
|
+
let end = () => { };
|
|
108
|
+
const expired = new Promise((resolve) => {
|
|
109
|
+
end = resolve;
|
|
110
|
+
signal.addEventListener('abort', end, { once: true });
|
|
111
|
+
});
|
|
112
|
+
try {
|
|
113
|
+
// Keep whichever half arrived before the deadline. The race also bounds
|
|
114
|
+
// embedders whose fetch implementation does not honour cancellation.
|
|
115
|
+
await Promise.race([
|
|
116
|
+
expired,
|
|
117
|
+
Promise.allSettled([
|
|
118
|
+
api.json('GET', P.computerAction(id, 'windows')).then((windows) => {
|
|
119
|
+
if (!signal.aborted)
|
|
120
|
+
state.windows_now = windows;
|
|
121
|
+
}),
|
|
122
|
+
api.json('GET', P.computer(id)).then((computer) => {
|
|
123
|
+
if (!signal.aborted) {
|
|
124
|
+
state.computer_now = withoutCredentials(unwrapComputer(computer));
|
|
125
|
+
}
|
|
126
|
+
}),
|
|
127
|
+
]),
|
|
128
|
+
]);
|
|
129
|
+
}
|
|
130
|
+
finally {
|
|
131
|
+
signal.removeEventListener('abort', end);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
if (!('windows_now' in state) || !('computer_now' in state)) {
|
|
135
|
+
state.reconciliation_note = reconciled(state).trim();
|
|
107
136
|
}
|
|
108
137
|
return state;
|
|
109
138
|
}
|
|
139
|
+
/** No continuity claim based solely on capabilities cached from an old socket. */
|
|
140
|
+
function connectionNote(sub, version) {
|
|
141
|
+
if (sub.state.status === 'stopped') {
|
|
142
|
+
return 'The event stream has stopped. These are the events buffered so far; call again for the remaining events and the reason it stopped.';
|
|
143
|
+
}
|
|
144
|
+
if (!sub.connected) {
|
|
145
|
+
return 'The event stream is reconnecting. These are the events buffered so far; more history may arrive on replay, so silence here is not an answer about what the computer did. Call again.';
|
|
146
|
+
}
|
|
147
|
+
if (version === undefined || version !== sub.connectionVersion) {
|
|
148
|
+
return 'The event stream was interrupted during this wait and has reopened. These are the events buffered so far; replayed events will be returned as they arrive. Call again to keep waiting.';
|
|
149
|
+
}
|
|
150
|
+
return '';
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* The sentence that points at the reconciliation — naming only the keys it
|
|
154
|
+
* actually produced.
|
|
155
|
+
*
|
|
156
|
+
* `reconcile` assigns each key on a fulfilled read and swallows the rest, so
|
|
157
|
+
* `{}` is a real return value: the windows read 409s while the guest is busy,
|
|
158
|
+
* the computer read fails, or the caller's own signal aborts both. Naming
|
|
159
|
+
* `windows_now` and `computer_now` regardless sends a model looking for two
|
|
160
|
+
* keys that are not in the payload — a wasted turn on the one answer that is
|
|
161
|
+
* already admitting a hole, and the tool that has to be believed about holes.
|
|
162
|
+
*/
|
|
163
|
+
function reconciled(extras) {
|
|
164
|
+
const reads = [
|
|
165
|
+
{ key: 'windows_now', tool: 'list_windows' },
|
|
166
|
+
{ key: 'computer_now', tool: 'get_computer' },
|
|
167
|
+
];
|
|
168
|
+
const here = reads.filter((r) => r.key in extras).map((r) => r.key);
|
|
169
|
+
const absent = reads.filter((r) => !(r.key in extras)).map((r) => r.tool);
|
|
170
|
+
if (!here.length) {
|
|
171
|
+
return (' See lost for what is known about it. Where the computer actually stands could NOT be read ' +
|
|
172
|
+
'just now, so it is not in this answer — call list_windows and get_computer for what the ' +
|
|
173
|
+
'missing events would have told you.');
|
|
174
|
+
}
|
|
175
|
+
return (` See lost for what is known about it, and ${here.join(' and ')} for where the computer ` +
|
|
176
|
+
`actually stands, which is what the missing events would have told you.` +
|
|
177
|
+
(absent.length ? ` The other half could not be read just now — call ${absent[0]} for it.` : ''));
|
|
178
|
+
}
|
|
110
179
|
/**
|
|
111
180
|
* Why a computer is missing part of the guest half, in words.
|
|
112
181
|
*
|
|
@@ -143,7 +212,7 @@ function guestHalf(can) {
|
|
|
143
212
|
// too, so a computer reporting it plainly has one.
|
|
144
213
|
return ('It does report the desktop half, which needs the same terminal channel a file watch runs ' +
|
|
145
214
|
'over — so the channel is there and it is the file watch that is missing. The host holding ' +
|
|
146
|
-
'this computer predates them (
|
|
215
|
+
'this computer predates them (OPL-3927), and there is nothing to do about that ' +
|
|
147
216
|
'from here.');
|
|
148
217
|
}
|
|
149
218
|
if (files && desktop) {
|
|
@@ -193,7 +262,7 @@ function name(ev) {
|
|
|
193
262
|
return detail ? `${ev.type} (${detail})` : ev.type;
|
|
194
263
|
}
|
|
195
264
|
/** The body these tools answer with, minus the keys there is nothing to say about. */
|
|
196
|
-
function body(id, d, watching) {
|
|
265
|
+
function body(id, d, sub, watching) {
|
|
197
266
|
const out = { computer: id, events: d.events, cursor: d.cursor };
|
|
198
267
|
if (d.more)
|
|
199
268
|
out.more_waiting = d.more;
|
|
@@ -204,14 +273,22 @@ function body(id, d, watching) {
|
|
|
204
273
|
// another call can evict it, and a reconnect can find it disarmed. A reader
|
|
205
274
|
// that had to remember which of four trees was live from a call several turns
|
|
206
275
|
// ago is a reader that will get it wrong.
|
|
207
|
-
if (watching?.length)
|
|
208
|
-
out.watching = watching;
|
|
276
|
+
if (watching?.length) {
|
|
277
|
+
out.watching = watching.map((watch) => ({ ...watch, armed: watch.armed && sub.connected }));
|
|
278
|
+
}
|
|
209
279
|
// Only where it is news. `can_emit` is what stops a model waiting for
|
|
210
280
|
// something this machine will never produce, and the opening frame is the one
|
|
211
281
|
// place that answer exists — but repeating it on every poll would be a field
|
|
212
282
|
// that means nothing on the ninety-ninth call.
|
|
283
|
+
//
|
|
284
|
+
// Read from the LIVE list rather than from the greeting that seeded it. A
|
|
285
|
+
// `capabilities` frame replaces what `hello` advertised and goes both ways —
|
|
286
|
+
// a guest that turns out to have no watcher withdraws the half `hello`
|
|
287
|
+
// promised — and one landing between the opening frame and this subscription's
|
|
288
|
+
// first read would otherwise publish, exactly once and never again, a
|
|
289
|
+
// vocabulary that contradicts the one every refusal path here already acts on.
|
|
213
290
|
if (d.attached && d.hello) {
|
|
214
|
-
out.can_emit = d.hello.events;
|
|
291
|
+
out.can_emit = sub.eventTypes ?? d.hello.events;
|
|
215
292
|
if (d.hello.windows)
|
|
216
293
|
out.windows_on_attach = d.hello.windows;
|
|
217
294
|
}
|
|
@@ -255,8 +332,22 @@ function stopped(session, id, reason, sub, read) {
|
|
|
255
332
|
const d = sub.read(read);
|
|
256
333
|
const n = d.events.length;
|
|
257
334
|
const drained = !d.more;
|
|
335
|
+
// The sub this call drained, named, so the drop cannot take a replacement.
|
|
336
|
+
// Two calls on one computer overlap by design here, and a second one holding
|
|
337
|
+
// a handle this one has already dropped would otherwise close the fresh
|
|
338
|
+
// stream opened in between.
|
|
258
339
|
if (drained)
|
|
259
|
-
session.events.drop(id, reason, true);
|
|
340
|
+
session.events.drop(id, reason, true, sub);
|
|
341
|
+
// KNOWN GAP on the `!drained` side of that same overlap: if this call is the
|
|
342
|
+
// one holding the older handle, "call again for them" is a promise this
|
|
343
|
+
// server cannot keep. The next call resolves through `EventHub.open()`, which
|
|
344
|
+
// returns the subscription now in `#subs` — the replacement — and the events
|
|
345
|
+
// still in THIS one's ring are unreachable from that moment. Reaching it
|
|
346
|
+
// needs two calls overlapping on one computer with the older one parked
|
|
347
|
+
// mid-wait, which is why it has no test. Anything written here has to be
|
|
348
|
+
// narrower than "a fresh stream is running, there is nothing to fix": that
|
|
349
|
+
// sentence was tried, and it both dropped the disclosure above and reported a
|
|
350
|
+
// replacement that had itself stopped as healthy.
|
|
260
351
|
const held = n
|
|
261
352
|
? `${n} event${n === 1 ? '' : 's'} had already arrived before it stopped and ${n === 1 ? 'is' : 'are'} ` +
|
|
262
353
|
(drained
|
|
@@ -275,7 +366,7 @@ function stopped(session, id, reason, sub, read) {
|
|
|
275
366
|
// Without the watch set, deliberately. This stream has stopped, so a tree
|
|
276
367
|
// it was carrying is a tree nothing is watching — and `watching` reports
|
|
277
368
|
// `armed` from the last opening frame, which would read as live.
|
|
278
|
-
n || d.loss ? body(id, d) : undefined);
|
|
369
|
+
n || d.loss ? body(id, d, sub) : undefined);
|
|
279
370
|
}
|
|
280
371
|
/**
|
|
281
372
|
* A stream that has not yet got as far as its opening frame.
|
|
@@ -357,6 +448,21 @@ export const registerEvents = (server, session) => {
|
|
|
357
448
|
// had already taken — the same defect one tool over, with a ring in this
|
|
358
449
|
// session instead of a cursor in the guest. Nothing is created and nothing
|
|
359
450
|
// is destroyed, which is what made the annotation look right.
|
|
451
|
+
// No readOnlyHint, for the reason above — and BOTH other flags set,
|
|
452
|
+
// because the spec's defaults are wrong in one direction and unstated in
|
|
453
|
+
// the other the moment readOnlyHint is absent (OPL-4516).
|
|
454
|
+
//
|
|
455
|
+
// destructiveHint would default to TRUE, so without it this asks a host
|
|
456
|
+
// whether it may perform DESTRUCTIVE UPDATES in order to read.
|
|
457
|
+
// `cursor_position` and `read_file` set it for that reason; these were not
|
|
458
|
+
// revisited with them.
|
|
459
|
+
//
|
|
460
|
+
// idempotentHint is FALSE, which is the difference from those two, and it
|
|
461
|
+
// is set rather than left to its default for the same reason as the other:
|
|
462
|
+
// a host reading an absent flag as "unknown, safe to retry" would retry a
|
|
463
|
+
// timed-out poll and silently drop what the first attempt consumed, which
|
|
464
|
+
// is the harm the paragraph above it is about.
|
|
465
|
+
annotations: { destructiveHint: false, idempotentHint: false },
|
|
360
466
|
}, ({ computer_id, types, pid, timeout_s, since, limit }, extra) => guarded(async () => {
|
|
361
467
|
const id = session.resolve(computer_id);
|
|
362
468
|
const sub = session.events.open(id);
|
|
@@ -382,6 +488,7 @@ export const registerEvents = (server, session) => {
|
|
|
382
488
|
return cancelledDuringAttach(id);
|
|
383
489
|
if (!sub.eventTypes)
|
|
384
490
|
return unattached(id, Date.now() - started);
|
|
491
|
+
const connection = sub.connected ? sub.connectionVersion : undefined;
|
|
385
492
|
// A `pid` on its own means the exit of THAT command. Without this the
|
|
386
493
|
// filter below reads "anything that is not a process.exited passes",
|
|
387
494
|
// and `wait_for_event({pid: 99})` — which is how the argument's own
|
|
@@ -504,8 +611,8 @@ export const registerEvents = (server, session) => {
|
|
|
504
611
|
const waited = Math.round((Date.now() - started) / 1000);
|
|
505
612
|
if (hit === undefined) {
|
|
506
613
|
if (extra.signal?.aborted) {
|
|
507
|
-
return refused(`Cancelled while waiting on ${id}.
|
|
508
|
-
|
|
614
|
+
return refused(`Cancelled while waiting on ${id}. Buffered events remain available on the next call. ` +
|
|
615
|
+
(connectionNote(sub, connection) || 'The stream is still open and buffering.'));
|
|
509
616
|
}
|
|
510
617
|
const now = sub.state;
|
|
511
618
|
if (now.status === 'stopped')
|
|
@@ -526,7 +633,7 @@ export const registerEvents = (server, session) => {
|
|
|
526
633
|
// again cost nothing. Reporting it as a failure would teach a model to
|
|
527
634
|
// stop asking — back to the screenshot loop this tool exists to end.
|
|
528
635
|
const d = sub.read({ since, limit });
|
|
529
|
-
const extras = d.loss ? await reconcile(session, id, extra.signal) : {};
|
|
636
|
+
const extras = d.loss ? await reconcile(session, id, extra.signal, deadline) : {};
|
|
530
637
|
// What did NOT match still happened, and this read has just handed it
|
|
531
638
|
// over — so the sentence has to name it. Saying "nothing happened"
|
|
532
639
|
// over a payload holding three events is the one thing a model must
|
|
@@ -537,6 +644,11 @@ export const registerEvents = (server, session) => {
|
|
|
537
644
|
? ` ${d.events.length} other event${d.events.length === 1 ? '' : 's'} did happen and ` +
|
|
538
645
|
`${d.events.length === 1 ? 'is' : 'are'} below.`
|
|
539
646
|
: '';
|
|
647
|
+
const interrupted = connectionNote(sub, connection);
|
|
648
|
+
if (interrupted || d.loss) {
|
|
649
|
+
return said(`${interrupted || `No matching event is buffered on ${id}.`}${others}` +
|
|
650
|
+
(d.loss ? reconciled(extras) : ''), { ...body(id, d, sub, sub.watching), ...extras });
|
|
651
|
+
}
|
|
540
652
|
return said(`Nothing ${wanted ? `matching ${[...wanted].join(' or ')} ` : ''}happened on ${id} in ` +
|
|
541
653
|
`${timeout_s}s.${others} This server kept listening the whole time and is still ` +
|
|
542
654
|
`listening — nothing was missed and nothing is being missed now. Call again to ` +
|
|
@@ -545,11 +657,11 @@ export const registerEvents = (server, session) => {
|
|
|
545
657
|
// wait was real: what must not happen is a model reading "nothing
|
|
546
658
|
// happened" as covering a type nothing was ever going to send.
|
|
547
659
|
(unwatched() ? ` One thing was NOT being waited for: ${nominate()}` : '') +
|
|
548
|
-
(d.loss ? ' Some events were lost before they could be read — see lost.' : ''), { ...body(id, d, sub.watching), ...extras });
|
|
660
|
+
(d.loss ? ' Some events were lost before they could be read — see lost.' : ''), { ...body(id, d, sub, sub.watching), ...extras });
|
|
549
661
|
}
|
|
550
662
|
const d = sub.read({ since, limit, through: hit });
|
|
551
663
|
const last = d.events[d.events.length - 1];
|
|
552
|
-
const extras = d.loss ? await reconcile(session, id, extra.signal) : {};
|
|
664
|
+
const extras = d.loss ? await reconcile(session, id, extra.signal, deadline) : {};
|
|
553
665
|
const before = d.events.length - 1;
|
|
554
666
|
// Empty when another call on this computer consumed the matched event
|
|
555
667
|
// first: the ring is one buffer with one delivered cursor, and two
|
|
@@ -558,7 +670,7 @@ export const registerEvents = (server, session) => {
|
|
|
558
670
|
if (!last) {
|
|
559
671
|
return said(`Something happened on ${id} and another call on this computer was handed it before ` +
|
|
560
672
|
`this one could read it — the events are in that call's answer, not below. Nothing ` +
|
|
561
|
-
`is lost; look there, or call again for whatever comes next.`, { ...body(id, d, sub.watching), ...extras });
|
|
673
|
+
`is lost; look there, or call again for whatever comes next.`, { ...body(id, d, sub, sub.watching), ...extras });
|
|
562
674
|
}
|
|
563
675
|
return said(`${name(last)} on ${id} after ${waited}s` +
|
|
564
676
|
(before > 0 ? `, and ${before} before it` : '') +
|
|
@@ -568,7 +680,7 @@ export const registerEvents = (server, session) => {
|
|
|
568
680
|
'and computer.ready is announced once per desktop session — so the real event had ' +
|
|
569
681
|
'happened before there was anything here to hear it, and waiting for it would have ' +
|
|
570
682
|
'waited forever.'
|
|
571
|
-
: ''), { ...body(id, d, sub.watching), ...extras });
|
|
683
|
+
: ''), { ...body(id, d, sub, sub.watching), ...extras });
|
|
572
684
|
}));
|
|
573
685
|
/**
|
|
574
686
|
* What one `file.changed` says, in a sentence.
|
|
@@ -691,6 +803,21 @@ export const registerEvents = (server, session) => {
|
|
|
691
803
|
// tree out of the watch set. A client treating the hint as licence to
|
|
692
804
|
// retry a call that timed out would silently drop events and, on the
|
|
693
805
|
// fifth distinct path, silently stop watching the first.
|
|
806
|
+
// No readOnlyHint, for the two reasons above — and destructiveHint TRUE,
|
|
807
|
+
// which is where this parts company with the three consuming reads beside
|
|
808
|
+
// it (OPL-4516).
|
|
809
|
+
//
|
|
810
|
+
// The spec reads `false` as "performs only additive updates", and this does
|
|
811
|
+
// not: a nomination past MAX_WATCHES evicts the least recent tree and
|
|
812
|
+
// deletes its armed, lost and host state, so a fifth call ends event
|
|
813
|
+
// delivery on the first with nothing said. Claiming additive-only would be
|
|
814
|
+
// the same false all-clear the missing readOnlyHint already avoids — a host
|
|
815
|
+
// that auto-approves non-destructive tools would let the model do it with
|
|
816
|
+
// nobody asked. Same value the absent annotation defaulted to, said out
|
|
817
|
+
// loud so it reads as a decision rather than an omission.
|
|
818
|
+
//
|
|
819
|
+
// idempotentHint false for the reason the others set it: this consumes.
|
|
820
|
+
annotations: { destructiveHint: true, idempotentHint: false },
|
|
694
821
|
}, ({ computer_id, path, timeout_s, since, limit }, extra) => guarded(async () => {
|
|
695
822
|
const id = session.resolve(computer_id);
|
|
696
823
|
// Before anything is opened. A path this host will not accept is a 400
|
|
@@ -777,7 +904,7 @@ export const registerEvents = (server, session) => {
|
|
|
777
904
|
if (sub.watchesHonoured === false) {
|
|
778
905
|
return refused(`${id} opened its event stream but said nothing about ${root}, so this server cannot ` +
|
|
779
906
|
`tell whether the tree is being watched — and a wait would be a wait on silence. The ` +
|
|
780
|
-
`host holding this computer may predate file watches (
|
|
907
|
+
`host holding this computer may predate file watches (OPL-3927). Use exec ` +
|
|
781
908
|
`to look at the directory instead.` +
|
|
782
909
|
evicted);
|
|
783
910
|
}
|
|
@@ -817,6 +944,7 @@ export const registerEvents = (server, session) => {
|
|
|
817
944
|
// whatever happened in between was never reported and the tree has to
|
|
818
945
|
// be re-read.
|
|
819
946
|
const generation = sub.armGeneration(root);
|
|
947
|
+
const connection = sub.connected ? sub.connectionVersion : undefined;
|
|
820
948
|
// Said once, on the first answer about a tree this subscription
|
|
821
949
|
// inherited from one that went away. A tree is watched by the
|
|
822
950
|
// CONNECTION, so the idle reap that took the previous subscription also
|
|
@@ -901,8 +1029,8 @@ export const registerEvents = (server, session) => {
|
|
|
901
1029
|
if (now.status === 'stopped')
|
|
902
1030
|
return stopped(session, id, now.reason, sub, { since, limit });
|
|
903
1031
|
const d = sub.read({ since, limit });
|
|
904
|
-
const extras = d.loss ? await reconcile(session, id, extra.signal) : {};
|
|
905
|
-
const answer = { ...body(id, d, sub.watching), watch: wire, ...extras };
|
|
1032
|
+
const extras = d.loss ? await reconcile(session, id, extra.signal, deadline) : {};
|
|
1033
|
+
const answer = { ...body(id, d, sub, sub.watching), watch: wire, ...extras };
|
|
906
1034
|
// THESE FIRST, and in this order, because each would otherwise be
|
|
907
1035
|
// described as something else. Evicting a tree does not reset its arm
|
|
908
1036
|
// generation — that is kept monotonic on purpose — but it does take
|
|
@@ -912,7 +1040,7 @@ export const registerEvents = (server, session) => {
|
|
|
912
1040
|
// the set for a quite different reason, which is why the refusal is
|
|
913
1041
|
// asked about ahead of the membership.
|
|
914
1042
|
const why = settled(sub, id, root, wire, () => interrupted() + evicted, {
|
|
915
|
-
...body(id, d, sub.watching),
|
|
1043
|
+
...body(id, d, sub, sub.watching),
|
|
916
1044
|
...extras,
|
|
917
1045
|
});
|
|
918
1046
|
if (why)
|
|
@@ -959,6 +1087,15 @@ export const registerEvents = (server, session) => {
|
|
|
959
1087
|
interrupted() +
|
|
960
1088
|
evicted, answer);
|
|
961
1089
|
}
|
|
1090
|
+
const connectionChanged = connectionNote(sub, connection);
|
|
1091
|
+
if (connectionChanged || d.loss) {
|
|
1092
|
+
return said(`${connectionChanged || `No file change is buffered for ${wire}.`} ` +
|
|
1093
|
+
`A quiet directory cannot be confirmed for this whole wait.` +
|
|
1094
|
+
(d.loss ? reconciled(extras) : '') +
|
|
1095
|
+
interrupted() +
|
|
1096
|
+
renamed +
|
|
1097
|
+
evicted, answer);
|
|
1098
|
+
}
|
|
962
1099
|
// NOT an error, for the reason wait_for_event's timeout is not: the
|
|
963
1100
|
// tree was being watched for the whole of it, so "nothing changed" is
|
|
964
1101
|
// an answer rather than an absence of one. This is the sentence the
|
|
@@ -979,17 +1116,42 @@ export const registerEvents = (server, session) => {
|
|
|
979
1116
|
}
|
|
980
1117
|
const d = sub.read({ since, limit, through: hit });
|
|
981
1118
|
const last = d.events[d.events.length - 1];
|
|
982
|
-
const extras = d.loss ? await reconcile(session, id, extra.signal) : {};
|
|
1119
|
+
const extras = d.loss ? await reconcile(session, id, extra.signal, deadline) : {};
|
|
983
1120
|
const earlier = d.events.length - 1;
|
|
984
1121
|
// The one `lost` that is not a re-read: it says the tree is not being
|
|
985
1122
|
// watched, so it is the request failing rather than the watch reporting.
|
|
986
1123
|
// It arrives as an ordinary file.changed and would otherwise be
|
|
987
1124
|
// described by changeLine, which has nothing useful to say about it.
|
|
988
1125
|
if ((last?.data?.lost ?? '') === 'unwatchable') {
|
|
989
|
-
|
|
1126
|
+
// Only when the tree is not being watched NOW. An `unwatchable` sits
|
|
1127
|
+
// in the ring until something reads it, and a caller who created the
|
|
1128
|
+
// directory and called again re-nominates: the guest answers the new
|
|
1129
|
+
// nomination with an arm, and this marker — already reported to the
|
|
1130
|
+
// call that refused on it — is then describing a watch that has since
|
|
1131
|
+
// been replaced. Handed back as the answer it refuses a second time
|
|
1132
|
+
// over a directory that plainly exists, which is the same false
|
|
1133
|
+
// "not there yet" the re-nomination exists to clear, one call later.
|
|
1134
|
+
//
|
|
1135
|
+
// `isArmed` is what tells the two apart, and it is exact rather than a
|
|
1136
|
+
// proxy: `unwatchable` is the one `lost` that disarms, so a tree still
|
|
1137
|
+
// carrying this marker as its live state reads false here, while one
|
|
1138
|
+
// the guest has since armed reads true. Said with the re-arm's own
|
|
1139
|
+
// sentence, because that is what happened and the window is genuinely
|
|
1140
|
+
// unreported either way.
|
|
1141
|
+
if (!sub.isArmed(root)) {
|
|
1142
|
+
return refused(`${unwatchable(wire)} It was being watched until now; from here it is not.` +
|
|
1143
|
+
interrupted() +
|
|
1144
|
+
renamed +
|
|
1145
|
+
evicted, { ...body(id, d, sub, sub.watching), watch: wire, ...extras });
|
|
1146
|
+
}
|
|
1147
|
+
return said(`${wire} on ${id} was not watchable when this stream last asked — it was reported ` +
|
|
1148
|
+
`missing or unreadable — and it is being watched now: the nomination was retried and ` +
|
|
1149
|
+
`the guest armed it. Reporting starts HERE, so nothing that happened under it before ` +
|
|
1150
|
+
`this was reported or ever will be. Re-read the directory with exec if that window ` +
|
|
1151
|
+
`matters, then call again to wait for what comes next.` +
|
|
990
1152
|
interrupted() +
|
|
991
1153
|
renamed +
|
|
992
|
-
evicted, { ...body(id, d, sub.watching), watch: wire, ...extras });
|
|
1154
|
+
evicted, { ...body(id, d, sub, sub.watching), watch: wire, ...extras });
|
|
993
1155
|
}
|
|
994
1156
|
// A `through` read can come back empty when another call on this
|
|
995
1157
|
// computer consumed the matched event first — the ring is one buffer
|
|
@@ -1002,14 +1164,14 @@ export const registerEvents = (server, session) => {
|
|
|
1002
1164
|
`not below. Nothing is lost; look there, or call again for whatever comes next.` +
|
|
1003
1165
|
interrupted() +
|
|
1004
1166
|
renamed +
|
|
1005
|
-
evicted, { ...body(id, d, sub.watching), watch: wire, ...extras });
|
|
1167
|
+
evicted, { ...body(id, d, sub, sub.watching), watch: wire, ...extras });
|
|
1006
1168
|
}
|
|
1007
1169
|
return said(`${changeLine(last, id)} after ${waited}s` +
|
|
1008
1170
|
(earlier > 0 ? `, and ${earlier} event${earlier === 1 ? '' : 's'} before it` : '') +
|
|
1009
1171
|
'.' +
|
|
1010
1172
|
interrupted() +
|
|
1011
1173
|
renamed +
|
|
1012
|
-
evicted, { ...body(id, d, sub.watching), watch: wire, ...extras });
|
|
1174
|
+
evicted, { ...body(id, d, sub, sub.watching), watch: wire, ...extras });
|
|
1013
1175
|
}));
|
|
1014
1176
|
server.registerTool('poll_events', {
|
|
1015
1177
|
title: 'Read what has happened',
|
|
@@ -1036,6 +1198,21 @@ export const registerEvents = (server, session) => {
|
|
|
1036
1198
|
// had already taken — the same defect one tool over, with a ring in this
|
|
1037
1199
|
// session instead of a cursor in the guest. Nothing is created and nothing
|
|
1038
1200
|
// is destroyed, which is what made the annotation look right.
|
|
1201
|
+
// No readOnlyHint, for the reason above — and BOTH other flags set,
|
|
1202
|
+
// because the spec's defaults are wrong in one direction and unstated in
|
|
1203
|
+
// the other the moment readOnlyHint is absent (OPL-4516).
|
|
1204
|
+
//
|
|
1205
|
+
// destructiveHint would default to TRUE, so without it this asks a host
|
|
1206
|
+
// whether it may perform DESTRUCTIVE UPDATES in order to read.
|
|
1207
|
+
// `cursor_position` and `read_file` set it for that reason; these were not
|
|
1208
|
+
// revisited with them.
|
|
1209
|
+
//
|
|
1210
|
+
// idempotentHint is FALSE, which is the difference from those two, and it
|
|
1211
|
+
// is set rather than left to its default for the same reason as the other:
|
|
1212
|
+
// a host reading an absent flag as "unknown, safe to retry" would retry a
|
|
1213
|
+
// timed-out poll and silently drop what the first attempt consumed, which
|
|
1214
|
+
// is the harm the paragraph above it is about.
|
|
1215
|
+
annotations: { destructiveHint: false, idempotentHint: false },
|
|
1039
1216
|
}, ({ computer_id, since, limit }, extra) => guarded(async () => {
|
|
1040
1217
|
const id = session.resolve(computer_id);
|
|
1041
1218
|
const sub = session.events.open(id);
|
|
@@ -1053,8 +1230,16 @@ export const registerEvents = (server, session) => {
|
|
|
1053
1230
|
return cancelledDuringAttach(id);
|
|
1054
1231
|
if (!sub.eventTypes)
|
|
1055
1232
|
return unattached(id, Date.now() - started);
|
|
1233
|
+
const connection = sub.connected ? sub.connectionVersion : undefined;
|
|
1056
1234
|
const d = sub.read({ since, limit });
|
|
1057
1235
|
const extras = d.loss ? await reconcile(session, id, extra.signal) : {};
|
|
1236
|
+
const interruption = connectionNote(sub, connection);
|
|
1237
|
+
if (interruption) {
|
|
1238
|
+
return said(interruption + (d.loss ? reconciled(extras) : ''), {
|
|
1239
|
+
...body(id, d, sub, sub.watching),
|
|
1240
|
+
...extras,
|
|
1241
|
+
});
|
|
1242
|
+
}
|
|
1058
1243
|
if (!d.events.length) {
|
|
1059
1244
|
// The one case where "this is an answer rather than a gap" is exactly
|
|
1060
1245
|
// wrong: a gap whose surviving events were all read already leaves an
|
|
@@ -1062,16 +1247,16 @@ export const registerEvents = (server, session) => {
|
|
|
1062
1247
|
// either way; the sentence has to agree with it.
|
|
1063
1248
|
if (d.loss) {
|
|
1064
1249
|
return said(`Nothing new on ${id} that survived — there is a hole in the history here, and what ` +
|
|
1065
|
-
`was in it is gone
|
|
1066
|
-
`computer_now for where the computer actually stands, which is what the missing ` +
|
|
1067
|
-
`events would have told you.`, { ...body(id, d, sub.watching), ...extras });
|
|
1250
|
+
`was in it is gone.${reconciled(extras)}`, { ...body(id, d, sub, sub.watching), ...extras });
|
|
1068
1251
|
}
|
|
1069
1252
|
return said(`Nothing new on ${id}. The stream is open and buffering, so this is an answer rather ` +
|
|
1070
|
-
`than a gap: nothing has been reported since you last read.`, { ...body(id, d, sub.watching), ...extras });
|
|
1253
|
+
`than a gap: nothing has been reported since you last read.`, { ...body(id, d, sub, sub.watching), ...extras });
|
|
1071
1254
|
}
|
|
1072
1255
|
const kinds = [...new Set(d.events.map((e) => e.type))].join(', ');
|
|
1073
1256
|
return said(`${d.events.length} event${d.events.length === 1 ? '' : 's'} on ${id}: ${kinds}.` +
|
|
1074
|
-
(d.more
|
|
1257
|
+
(d.more
|
|
1258
|
+
? ` ${d.more} more ${d.more === 1 ? 'is' : 'are'} buffered — call again for ${d.more === 1 ? 'it' : 'them'}.`
|
|
1259
|
+
: ''), { ...body(id, d, sub, sub.watching), ...extras });
|
|
1075
1260
|
}));
|
|
1076
1261
|
};
|
|
1077
1262
|
//# sourceMappingURL=events.js.map
|
package/dist/tools/events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/tools/events.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/tools/events.ts"],"names":[],"mappings":"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"}
|