poly-weaver 1.1.0 → 1.2.0
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/dist/agents/implementors/index.d.ts +2 -2
- package/dist/agents/implementors/index.d.ts.map +1 -1
- package/dist/agents/implementors/index.js.map +1 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +7 -6
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/interviewers/index.d.ts +2 -2
- package/dist/agents/interviewers/index.d.ts.map +1 -1
- package/dist/agents/planners/index.d.ts +2 -2
- package/dist/agents/planners/index.d.ts.map +1 -1
- package/dist/agents/planners/index.js.map +1 -1
- package/dist/agents/registry.d.ts +2 -1
- package/dist/agents/registry.d.ts.map +1 -1
- package/dist/agents/registry.js +1 -1
- package/dist/agents/registry.js.map +1 -1
- package/dist/agents/reviewers/index.d.ts +2 -2
- package/dist/agents/reviewers/index.d.ts.map +1 -1
- package/dist/agents/reviewers/index.js.map +1 -1
- package/dist/agents/runner.d.ts +3 -1
- package/dist/agents/runner.d.ts.map +1 -1
- package/dist/agents/runner.js +106 -64
- package/dist/agents/runner.js.map +1 -1
- package/dist/agents/simplifiers/adapter.d.ts.map +1 -1
- package/dist/agents/simplifiers/adapter.js +1 -0
- package/dist/agents/simplifiers/adapter.js.map +1 -1
- package/dist/agents/simplifiers/dsl.d.ts +1 -0
- package/dist/agents/simplifiers/dsl.d.ts.map +1 -1
- package/dist/agents/simplifiers/dsl.js +1 -0
- package/dist/agents/simplifiers/dsl.js.map +1 -1
- package/dist/agents/simplifiers/handler.d.ts.map +1 -1
- package/dist/agents/simplifiers/handler.js +1 -0
- package/dist/agents/simplifiers/handler.js.map +1 -1
- package/dist/agents/simplifiers/index.d.ts +2 -2
- package/dist/agents/simplifiers/index.d.ts.map +1 -1
- package/dist/agents/simplifiers/index.js.map +1 -1
- package/dist/agents/simplifiers/prompts.d.ts +1 -0
- package/dist/agents/simplifiers/prompts.d.ts.map +1 -1
- package/dist/agents/simplifiers/prompts.js +1 -1
- package/dist/agents/simplifiers/prompts.js.map +1 -1
- package/dist/agents/simplifiers/types.d.ts +1 -0
- package/dist/agents/simplifiers/types.d.ts.map +1 -1
- package/dist/cleanup.d.ts +9 -0
- package/dist/cleanup.d.ts.map +1 -0
- package/dist/cleanup.js +35 -0
- package/dist/cleanup.js.map +1 -0
- package/dist/cli.js +30 -13
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +5 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/crosscheck/coordinator.d.ts.map +1 -1
- package/dist/crosscheck/coordinator.js +52 -36
- package/dist/crosscheck/coordinator.js.map +1 -1
- package/dist/crosscheck/live-agent-session.d.ts +8 -1
- package/dist/crosscheck/live-agent-session.d.ts.map +1 -1
- package/dist/crosscheck/live-agent-session.js +62 -31
- package/dist/crosscheck/live-agent-session.js.map +1 -1
- package/dist/dump/collector.d.ts.map +1 -1
- package/dist/dump/collector.js +1 -0
- package/dist/dump/collector.js.map +1 -1
- package/dist/dump/observer-diagnostics.d.ts +6 -0
- package/dist/dump/observer-diagnostics.d.ts.map +1 -0
- package/dist/dump/observer-diagnostics.js +19 -0
- package/dist/dump/observer-diagnostics.js.map +1 -0
- package/dist/dump/service.d.ts.map +1 -1
- package/dist/dump/service.js +2 -3
- package/dist/dump/service.js.map +1 -1
- package/dist/dump/types.d.ts +2 -0
- package/dist/dump/types.d.ts.map +1 -1
- package/dist/flow/built-in/simplify-factory.d.ts.map +1 -1
- package/dist/flow/built-in/simplify-factory.js +4 -1
- package/dist/flow/built-in/simplify-factory.js.map +1 -1
- package/dist/flow/built-in/simplify.d.ts +1 -0
- package/dist/flow/built-in/simplify.d.ts.map +1 -1
- package/dist/flow/built-in/simplify.js +3 -2
- package/dist/flow/built-in/simplify.js.map +1 -1
- package/dist/flow/dsl.d.ts +1 -0
- package/dist/flow/dsl.d.ts.map +1 -1
- package/dist/flow/dsl.js +1 -0
- package/dist/flow/dsl.js.map +1 -1
- package/dist/flow/executor.d.ts.map +1 -1
- package/dist/flow/executor.js +3 -3
- package/dist/flow/executor.js.map +1 -1
- package/dist/flow/params.d.ts +3 -1
- package/dist/flow/params.d.ts.map +1 -1
- package/dist/flow/params.js +85 -121
- package/dist/flow/params.js.map +1 -1
- package/dist/flow/types.d.ts +5 -2
- package/dist/flow/types.d.ts.map +1 -1
- package/dist/flow/types.js.map +1 -1
- package/dist/offscreen/controller.d.ts +1 -1
- package/dist/offscreen/controller.d.ts.map +1 -1
- package/dist/offscreen/controller.js +67 -45
- package/dist/offscreen/controller.js.map +1 -1
- package/dist/offscreen/fork.d.ts +6 -3
- package/dist/offscreen/fork.d.ts.map +1 -1
- package/dist/offscreen/fork.js +57 -33
- package/dist/offscreen/fork.js.map +1 -1
- package/dist/offscreen/inquiry-pane.d.ts.map +1 -1
- package/dist/offscreen/inquiry-pane.js +7 -2
- package/dist/offscreen/inquiry-pane.js.map +1 -1
- package/dist/offscreen/inquiry-sender.d.ts +1 -0
- package/dist/offscreen/inquiry-sender.d.ts.map +1 -1
- package/dist/offscreen/inquiry-sender.js +12 -2
- package/dist/offscreen/inquiry-sender.js.map +1 -1
- package/dist/offscreen/registry.d.ts.map +1 -1
- package/dist/offscreen/registry.js +14 -12
- package/dist/offscreen/registry.js.map +1 -1
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +20 -24
- package/dist/orchestrator.js.map +1 -1
- package/dist/preview-panel.d.ts +4 -1
- package/dist/preview-panel.d.ts.map +1 -1
- package/dist/preview-panel.js +114 -55
- package/dist/preview-panel.js.map +1 -1
- package/dist/providers/configuration-presentation.d.ts.map +1 -1
- package/dist/providers/configuration-presentation.js +5 -8
- package/dist/providers/configuration-presentation.js.map +1 -1
- package/dist/providers/copilot/capability-discovery.d.ts +16 -0
- package/dist/providers/copilot/capability-discovery.d.ts.map +1 -0
- package/dist/providers/copilot/capability-discovery.js +238 -0
- package/dist/providers/copilot/capability-discovery.js.map +1 -0
- package/dist/providers/copilot/capability-extension/extension.d.mts +2 -0
- package/dist/providers/copilot/capability-extension/extension.d.mts.map +1 -0
- package/dist/providers/copilot/capability-extension/extension.mjs +46 -0
- package/dist/providers/copilot/capability-extension/extension.mjs.map +1 -0
- package/dist/providers/copilot/completion.d.ts +2 -0
- package/dist/providers/copilot/completion.d.ts.map +1 -1
- package/dist/providers/copilot/completion.js +27 -0
- package/dist/providers/copilot/completion.js.map +1 -1
- package/dist/providers/copilot/model-capabilities.d.ts +21 -0
- package/dist/providers/copilot/model-capabilities.d.ts.map +1 -0
- package/dist/providers/copilot/model-capabilities.js +76 -0
- package/dist/providers/copilot/model-capabilities.js.map +1 -0
- package/dist/providers/copilot/observation.d.ts +123 -15
- package/dist/providers/copilot/observation.d.ts.map +1 -1
- package/dist/providers/copilot/observation.js +807 -179
- package/dist/providers/copilot/observation.js.map +1 -1
- package/dist/providers/copilot/observer-extension/com.github.copilot/extensions/poly-weaver-observer/extension.mjs +332 -66
- package/dist/providers/copilot/observer-extension/com.github.copilot/extensions/poly-weaver-observer/extension.mjs.map +1 -1
- package/dist/providers/copilot/observer-extension/com.github.copilot/extensions/poly-weaver-observer/history-evidence.d.mts +17 -0
- package/dist/providers/copilot/observer-extension/com.github.copilot/extensions/poly-weaver-observer/history-evidence.d.mts.map +1 -0
- package/dist/providers/copilot/observer-extension/com.github.copilot/extensions/poly-weaver-observer/history-evidence.mjs +54 -0
- package/dist/providers/copilot/observer-extension/com.github.copilot/extensions/poly-weaver-observer/history-evidence.mjs.map +1 -0
- package/dist/providers/copilot/strategy.d.ts +8 -8
- package/dist/providers/copilot/strategy.d.ts.map +1 -1
- package/dist/providers/copilot/strategy.js +61 -145
- package/dist/providers/copilot/strategy.js.map +1 -1
- package/dist/providers/copilot/trust.js +1 -1
- package/dist/providers/copilot/trust.js.map +1 -1
- package/dist/providers/fork-cleanup.d.ts.map +1 -1
- package/dist/providers/fork-cleanup.js +3 -19
- package/dist/providers/fork-cleanup.js.map +1 -1
- package/dist/providers/initialization.d.ts +14 -0
- package/dist/providers/initialization.d.ts.map +1 -0
- package/dist/providers/initialization.js +74 -0
- package/dist/providers/initialization.js.map +1 -0
- package/dist/providers/invoke.d.ts.map +1 -1
- package/dist/providers/invoke.js +54 -32
- package/dist/providers/invoke.js.map +1 -1
- package/dist/providers/observer-run.d.ts.map +1 -1
- package/dist/providers/observer-run.js +3 -2
- package/dist/providers/observer-run.js.map +1 -1
- package/dist/providers/option-catalog.d.ts +12 -8
- package/dist/providers/option-catalog.d.ts.map +1 -1
- package/dist/providers/option-catalog.js +25 -13
- package/dist/providers/option-catalog.js.map +1 -1
- package/dist/providers/registry.d.ts +3 -1
- package/dist/providers/registry.d.ts.map +1 -1
- package/dist/providers/registry.js +20 -9
- package/dist/providers/registry.js.map +1 -1
- package/dist/providers/session-launch.d.ts.map +1 -1
- package/dist/providers/session-launch.js +2 -1
- package/dist/providers/session-launch.js.map +1 -1
- package/dist/providers/types.d.ts +35 -8
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js +1 -1
- package/dist/providers/types.js.map +1 -1
- package/dist/pty/exit.d.ts +3 -1
- package/dist/pty/exit.d.ts.map +1 -1
- package/dist/pty/exit.js +39 -6
- package/dist/pty/exit.js.map +1 -1
- package/dist/pty/spawn.d.ts.map +1 -1
- package/dist/pty/spawn.js +7 -3
- package/dist/pty/spawn.js.map +1 -1
- package/dist/pty/types.d.ts +1 -1
- package/dist/pty/types.d.ts.map +1 -1
- package/dist/session/resume.d.ts.map +1 -1
- package/dist/session/resume.js +7 -0
- package/dist/session/resume.js.map +1 -1
- package/dist/startup-tui.d.ts +1 -0
- package/dist/startup-tui.d.ts.map +1 -1
- package/dist/startup-tui.js +17 -6
- package/dist/startup-tui.js.map +1 -1
- package/dist/terminal/color-negotiation.d.ts +37 -0
- package/dist/terminal/color-negotiation.d.ts.map +1 -0
- package/dist/terminal/color-negotiation.js +154 -0
- package/dist/terminal/color-negotiation.js.map +1 -0
- package/dist/terminal/color-protocol.d.ts +36 -0
- package/dist/terminal/color-protocol.d.ts.map +1 -0
- package/dist/terminal/color-protocol.js +88 -0
- package/dist/terminal/color-protocol.js.map +1 -0
- package/dist/terminal/host-input-mode.d.ts.map +1 -1
- package/dist/terminal/host-input-mode.js +6 -2
- package/dist/terminal/host-input-mode.js.map +1 -1
- package/dist/terminal/host.d.ts +13 -4
- package/dist/terminal/host.d.ts.map +1 -1
- package/dist/terminal/host.js +147 -51
- package/dist/terminal/host.js.map +1 -1
- package/dist/terminal/input-session.d.ts +23 -0
- package/dist/terminal/input-session.d.ts.map +1 -0
- package/dist/terminal/input-session.js +97 -0
- package/dist/terminal/input-session.js.map +1 -0
- package/dist/terminal/key-event-source.d.ts +5 -1
- package/dist/terminal/key-event-source.d.ts.map +1 -1
- package/dist/terminal/key-event-source.js +1 -0
- package/dist/terminal/key-event-source.js.map +1 -1
- package/dist/terminal/stdin-byte-source.d.ts +13 -8
- package/dist/terminal/stdin-byte-source.d.ts.map +1 -1
- package/dist/terminal/stdin-byte-source.js +84 -40
- package/dist/terminal/stdin-byte-source.js.map +1 -1
- package/dist/terminal/virtual-terminal.d.ts +2 -0
- package/dist/terminal/virtual-terminal.d.ts.map +1 -1
- package/dist/terminal/virtual-terminal.js +17 -0
- package/dist/terminal/virtual-terminal.js.map +1 -1
- package/dist/terminal-input.d.ts +19 -2
- package/dist/terminal-input.d.ts.map +1 -1
- package/dist/terminal-input.js +162 -6
- package/dist/terminal-input.js.map +1 -1
- package/dist/user/host-curate-prompt.d.ts.map +1 -1
- package/dist/user/host-curate-prompt.js +9 -5
- package/dist/user/host-curate-prompt.js.map +1 -1
- package/dist/user/host-prompt.d.ts.map +1 -1
- package/dist/user/host-prompt.js +9 -5
- package/dist/user/host-prompt.js.map +1 -1
- package/package.json +2 -2
|
@@ -3,6 +3,7 @@ import { mkdir, writeFile } from "node:fs/promises";
|
|
|
3
3
|
import { dirname } from "node:path";
|
|
4
4
|
import { once } from "node:events";
|
|
5
5
|
import { setImmediate as yieldToHost } from "node:timers/promises";
|
|
6
|
+
import { describeRecoveryEvent, matchesHistoryEvidence } from "./history-evidence.mjs";
|
|
6
7
|
|
|
7
8
|
const env = {
|
|
8
9
|
endpoint: "POLY_WEAVER_COPILOT_OBSERVER_ENDPOINT",
|
|
@@ -21,6 +22,8 @@ const testEnv = {
|
|
|
21
22
|
disconnectAfterEventType: "POLY_WEAVER_COPILOT_OBSERVER_DISCONNECT_AFTER_EVENT_TYPE",
|
|
22
23
|
disconnectAfterEventDelayMs: "POLY_WEAVER_COPILOT_OBSERVER_DISCONNECT_AFTER_EVENT_DELAY_MS",
|
|
23
24
|
disconnectAfterEventOnceFile: "POLY_WEAVER_COPILOT_OBSERVER_DISCONNECT_AFTER_EVENT_ONCE_FILE",
|
|
25
|
+
disconnectBeforeEventType: "POLY_WEAVER_COPILOT_OBSERVER_DISCONNECT_BEFORE_EVENT_TYPE",
|
|
26
|
+
reattachSdk: "POLY_WEAVER_COPILOT_OBSERVER_REATTACH_SDK",
|
|
24
27
|
};
|
|
25
28
|
|
|
26
29
|
function required(name) {
|
|
@@ -63,6 +66,7 @@ let bufferedCursor = 0;
|
|
|
63
66
|
const messageHandlers = new Set();
|
|
64
67
|
let admitted = false;
|
|
65
68
|
let intentionalDisconnect = false;
|
|
69
|
+
let closingForRecovery = false;
|
|
66
70
|
let disconnectScheduled = false;
|
|
67
71
|
const WORK_QUANTUM = 128;
|
|
68
72
|
const MAX_PENDING_CHARS = 64 * 1024 * 1024;
|
|
@@ -72,9 +76,12 @@ let outboundCursor = 0;
|
|
|
72
76
|
let outboundChars = 0;
|
|
73
77
|
let writer;
|
|
74
78
|
let transportFailed = false;
|
|
75
|
-
|
|
79
|
+
let transportAbort = new AbortController();
|
|
76
80
|
let bufferedChars = 0;
|
|
77
81
|
let streaming = false;
|
|
82
|
+
let beforeEventChecked = false;
|
|
83
|
+
const verifiedLifecycle = new WeakSet();
|
|
84
|
+
const HISTORY_READ_TIMEOUT_MS = 5_000;
|
|
78
85
|
|
|
79
86
|
function send(message) {
|
|
80
87
|
if (transportFailed || intentionalDisconnect) return;
|
|
@@ -120,7 +127,7 @@ function sendControl(type, fields = {}) {
|
|
|
120
127
|
}
|
|
121
128
|
|
|
122
129
|
function sendError(error) {
|
|
123
|
-
if (transportFailed || intentionalDisconnect) return;
|
|
130
|
+
if (transportFailed || intentionalDisconnect || closingForRecovery) return;
|
|
124
131
|
transportFailed = true;
|
|
125
132
|
outbound.clear();
|
|
126
133
|
outboundChars = 0;
|
|
@@ -132,6 +139,7 @@ function sendError(error) {
|
|
|
132
139
|
|
|
133
140
|
async function sendControlAndDrain(type, fields = {}) {
|
|
134
141
|
if (!socket || socket.destroyed) return;
|
|
142
|
+
if (type === "recovery.error") closingForRecovery = true;
|
|
135
143
|
sendControl(type, fields);
|
|
136
144
|
await flushOutput();
|
|
137
145
|
await new Promise((resolve) => {
|
|
@@ -143,9 +151,12 @@ function isLifecycleEvent(event) {
|
|
|
143
151
|
return event?.type === "session.start" || event?.type === "session.resume";
|
|
144
152
|
}
|
|
145
153
|
|
|
146
|
-
function sendObservedEvent(event) {
|
|
154
|
+
function sendObservedEvent(event, origin = "live", toolCallId) {
|
|
147
155
|
seq += 1;
|
|
148
|
-
const
|
|
156
|
+
const lifecycleDurability = origin === "live" && verifiedLifecycle.has(event) ? "sdk-history" : undefined;
|
|
157
|
+
const transient = origin === "live" && isLifecycleEvent(event) && !lifecycleDurability;
|
|
158
|
+
const frame = { kind: "event", seq, event, origin, transient, lifecycleDurability,
|
|
159
|
+
...(toolCallId && { toolCallId }) };
|
|
149
160
|
if (observedSessionId && isLifecycleEvent(event)) {
|
|
150
161
|
frame.sessionId = observedSessionId;
|
|
151
162
|
}
|
|
@@ -219,9 +230,15 @@ function waitForAuthResult() {
|
|
|
219
230
|
return;
|
|
220
231
|
}
|
|
221
232
|
if (message.accepted === true) {
|
|
233
|
+
const recovery = message.recovery;
|
|
234
|
+
if (!recovery || !["live-only", "suffix", "uncertain"].includes(recovery.mode)
|
|
235
|
+
|| (recovery.mode === "suffix" && (typeof recovery.afterEventId !== "string" || !recovery.afterEventId))) {
|
|
236
|
+
settle(new Error("Observer broker authentication has an invalid recovery mode"));
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
222
239
|
settle(undefined, {
|
|
223
240
|
accepted: true,
|
|
224
|
-
|
|
241
|
+
recovery,
|
|
225
242
|
captureHistoryBaseline: message.captureHistoryBaseline === true,
|
|
226
243
|
});
|
|
227
244
|
return;
|
|
@@ -278,24 +295,110 @@ async function handleRequest(message) {
|
|
|
278
295
|
}
|
|
279
296
|
}
|
|
280
297
|
|
|
281
|
-
async function
|
|
282
|
-
if (!session || typeof session.getEvents !== "function")
|
|
283
|
-
|
|
298
|
+
async function readSessionHistory() {
|
|
299
|
+
if (!session || typeof session.getEvents !== "function") {
|
|
300
|
+
throw new Error("SDK session history is unavailable");
|
|
301
|
+
}
|
|
302
|
+
const signal = AbortSignal.any([transportAbort.signal, AbortSignal.timeout(HISTORY_READ_TIMEOUT_MS)]);
|
|
303
|
+
let onAbort;
|
|
304
|
+
const events = await Promise.race([
|
|
305
|
+
Promise.resolve().then(() => session.getEvents()).catch(() => {
|
|
306
|
+
throw new Error("SDK session history read failed");
|
|
307
|
+
}),
|
|
308
|
+
new Promise((_, reject) => {
|
|
309
|
+
onAbort = () => reject(new Error("SDK session history read interrupted or timed out"));
|
|
310
|
+
if (signal.aborted) onAbort();
|
|
311
|
+
else signal.addEventListener("abort", onAbort, { once: true });
|
|
312
|
+
}),
|
|
313
|
+
]).finally(() => signal.removeEventListener("abort", onAbort));
|
|
284
314
|
if (!Array.isArray(events)) {
|
|
285
315
|
throw new Error("Observer SDK session.getEvents() returned a malformed response");
|
|
286
316
|
}
|
|
287
|
-
|
|
288
|
-
|
|
317
|
+
const positions = new Map();
|
|
318
|
+
for (let i = 0; i < events.length; i++) {
|
|
319
|
+
const event = events[i];
|
|
320
|
+
if (typeof event?.id !== "string" || !event.id || typeof event.type !== "string"
|
|
321
|
+
|| event.ephemeral === true || positions.has(event.id)) {
|
|
322
|
+
throw new Error("SDK history has malformed or ambiguous durable event identities");
|
|
323
|
+
}
|
|
324
|
+
positions.set(event.id, i);
|
|
325
|
+
if (i % WORK_QUANTUM === 0) await yieldToHost();
|
|
326
|
+
transportAbort.signal.throwIfAborted();
|
|
327
|
+
}
|
|
328
|
+
for (let i = 0; i < events.length; i++) {
|
|
329
|
+
const parent = positions.get(events[i].parentId);
|
|
330
|
+
if (parent !== undefined && parent >= i) throw new Error("SDK history has an inconsistent event order");
|
|
331
|
+
if (i % WORK_QUANTUM === 0) await yieldToHost();
|
|
332
|
+
transportAbort.signal.throwIfAborted();
|
|
333
|
+
}
|
|
334
|
+
return { events, positions };
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
class RecoveryEvidenceError extends Error {
|
|
338
|
+
constructor(message, rejection) {
|
|
339
|
+
super(message);
|
|
340
|
+
this.rejection = rejection;
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
function boundaryAvailability(history, afterEventId) {
|
|
345
|
+
if (!afterEventId) return "absent";
|
|
346
|
+
return history.positions.has(afterEventId) ? "located" : "missing";
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
async function verifyStartupLifecycle(history, afterEventId) {
|
|
350
|
+
const candidates = [];
|
|
351
|
+
const callbackPositions = new Map();
|
|
352
|
+
let count = 0;
|
|
353
|
+
for (const { event, origin } of bufferedEvents.values()) {
|
|
354
|
+
if (++count % WORK_QUANTUM === 0) await yieldToHost();
|
|
355
|
+
transportAbort.signal.throwIfAborted();
|
|
356
|
+
const position = origin === "live" && event.ephemeral !== true ? history.positions.get(event.id) : undefined;
|
|
357
|
+
if (position !== undefined) {
|
|
358
|
+
const persisted = history.events[position];
|
|
359
|
+
if (!matchesHistoryEvidence(event, persisted)) {
|
|
360
|
+
throw new RecoveryEvidenceError("SDK callback conflicts with its durable history record", {
|
|
361
|
+
stage: "startup-verification", boundary: boundaryAvailability(history, afterEventId),
|
|
362
|
+
event: describeRecoveryEvent(event, origin, history.positions, callbackPositions),
|
|
363
|
+
});
|
|
364
|
+
}
|
|
365
|
+
if (isLifecycleEvent(event)
|
|
366
|
+
&& (!event.data?.sessionId || event.data.sessionId === sessionId)
|
|
367
|
+
&& (!persisted.data?.sessionId || persisted.data.sessionId === sessionId)) candidates.push(event);
|
|
368
|
+
}
|
|
369
|
+
if (typeof event.id === "string") callbackPositions.set(event.id, count);
|
|
370
|
+
}
|
|
371
|
+
for (const event of candidates) {
|
|
372
|
+
verifiedLifecycle.add(event);
|
|
373
|
+
if (++count % WORK_QUANTUM === 0) await yieldToHost();
|
|
374
|
+
transportAbort.signal.throwIfAborted();
|
|
375
|
+
}
|
|
376
|
+
if (candidates.length === 0) {
|
|
377
|
+
sendControl("lifecycle.unverified", { error: "No observed startup lifecycle record verified in SDK history" });
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
async function replaySessionHistory(history, afterEventId) {
|
|
382
|
+
const { events, positions } = history;
|
|
383
|
+
const boundary = positions.get(afterEventId);
|
|
384
|
+
if (boundary === undefined) throw new RecoveryEvidenceError("Committed SDK history watermark is missing", {
|
|
385
|
+
stage: "boundary-lookup", boundary: "missing",
|
|
386
|
+
});
|
|
387
|
+
sendControl("recovery.begin", { afterEventId, event: events[boundary] });
|
|
388
|
+
for (let i = boundary + 1; i < events.length; i++) {
|
|
389
|
+
const event = events[i];
|
|
390
|
+
sendObservedEvent(event, "history");
|
|
289
391
|
void maybeDisconnectAfterObservedEvent(event).catch(sendError);
|
|
290
392
|
if (seq % WORK_QUANTUM === 0) {
|
|
291
393
|
await flushOutput();
|
|
292
394
|
await yieldToHost();
|
|
293
395
|
}
|
|
294
|
-
if (transportFailed || intentionalDisconnect) return;
|
|
396
|
+
if (transportFailed || intentionalDisconnect) return { positions, boundary };
|
|
295
397
|
}
|
|
398
|
+
return { positions, boundary };
|
|
296
399
|
}
|
|
297
400
|
|
|
298
|
-
async function
|
|
401
|
+
async function connectBroker() {
|
|
299
402
|
socket = net.createConnection(endpoint);
|
|
300
403
|
socket.setEncoding("utf8");
|
|
301
404
|
await new Promise((resolve, reject) => {
|
|
@@ -320,11 +423,11 @@ async function main() {
|
|
|
320
423
|
}
|
|
321
424
|
});
|
|
322
425
|
socket.on("error", () => {
|
|
323
|
-
if (admitted && !intentionalDisconnect) process.exitCode = 1;
|
|
426
|
+
if (admitted && !intentionalDisconnect && !closingForRecovery) process.exitCode = 1;
|
|
324
427
|
});
|
|
325
428
|
socket.on("close", () => {
|
|
326
429
|
transportAbort.abort(new Error("Observer transport closed"));
|
|
327
|
-
if (admitted && !intentionalDisconnect) process.exit(1);
|
|
430
|
+
if (admitted && !intentionalDisconnect && !closingForRecovery) process.exit(1);
|
|
328
431
|
});
|
|
329
432
|
|
|
330
433
|
const authentication = waitForAuthResult();
|
|
@@ -340,6 +443,20 @@ async function main() {
|
|
|
340
443
|
const authResult = await authentication;
|
|
341
444
|
if (!authResult.accepted) process.exit(0);
|
|
342
445
|
admitted = true;
|
|
446
|
+
return authResult;
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
async function main() {
|
|
450
|
+
let authResult = await connectBroker();
|
|
451
|
+
if (authResult.recovery.mode === "uncertain") {
|
|
452
|
+
await sendControlAndDrain("recovery.error", {
|
|
453
|
+
error: "A request may have started without a durable recovery watermark",
|
|
454
|
+
recoveryRejection: { stage: "boundary-lookup", boundary: "absent" },
|
|
455
|
+
});
|
|
456
|
+
intentionalDisconnect = true;
|
|
457
|
+
socket.end();
|
|
458
|
+
return;
|
|
459
|
+
}
|
|
343
460
|
|
|
344
461
|
await sleep(optionalDelayMs(testEnv.postAuthDelayMs));
|
|
345
462
|
|
|
@@ -350,66 +467,83 @@ async function main() {
|
|
|
350
467
|
const { joinSession } = await import(sdkImport);
|
|
351
468
|
const initialLiveIds = new Set();
|
|
352
469
|
let capturingHistory = authResult.captureHistoryBaseline;
|
|
353
|
-
|
|
470
|
+
let exitToolCallId;
|
|
471
|
+
let startupLifecycle;
|
|
472
|
+
let notifyLifecycle;
|
|
473
|
+
let firstLifecycle = new Promise((resolve) => { notifyLifecycle = resolve; });
|
|
474
|
+
const onEvent = (event, origin = "live", toolCallId) => {
|
|
354
475
|
if (transportFailed || intentionalDisconnect) return;
|
|
355
|
-
if (
|
|
476
|
+
if (streaming && !beforeEventChecked && origin === "live" && !event.agentId
|
|
477
|
+
&& process.env[testEnv.disconnectBeforeEventType] === event?.type
|
|
478
|
+
&& process.env[testEnv.disconnectAfterEventOnceFile]) {
|
|
479
|
+
beforeEventChecked = true;
|
|
480
|
+
streaming = false;
|
|
481
|
+
void (async () => {
|
|
482
|
+
if (await claimOneShotDisconnectAfterEvent()) {
|
|
483
|
+
const closed = once(socket, "close");
|
|
484
|
+
await disconnectObserverTransport(testEnv.disconnectAfterEventDelayMs);
|
|
485
|
+
await closed;
|
|
486
|
+
transportAbort = new AbortController();
|
|
487
|
+
intentionalDisconnect = false;
|
|
488
|
+
disconnectScheduled = false;
|
|
489
|
+
seq = 0;
|
|
490
|
+
authResult = await connectBroker();
|
|
491
|
+
if (authResult.recovery.mode !== "suffix") throw new Error("Startup test replacement requires a verified boundary");
|
|
492
|
+
if (process.env[testEnv.reattachSdk] === "1") {
|
|
493
|
+
await session.disconnect();
|
|
494
|
+
startupLifecycle = undefined;
|
|
495
|
+
firstLifecycle = new Promise((resolve) => { notifyLifecycle = resolve; });
|
|
496
|
+
await attachSdk();
|
|
497
|
+
} else {
|
|
498
|
+
sendControl("session.joined", { sessionId: session.sessionId, workspacePath: session.workspacePath });
|
|
499
|
+
sendControl("session.lifecycle", { event: startupLifecycle });
|
|
500
|
+
}
|
|
501
|
+
await publishAdmission();
|
|
502
|
+
return;
|
|
503
|
+
}
|
|
504
|
+
while (bufferedEvents.size > 0) {
|
|
505
|
+
const entry = bufferedEvents.get(bufferedCursor);
|
|
506
|
+
bufferedEvents.delete(bufferedCursor++);
|
|
507
|
+
bufferedChars -= entry.chars;
|
|
508
|
+
sendObservedEvent(entry.event, entry.origin, entry.toolCallId);
|
|
509
|
+
if (bufferedCursor % WORK_QUANTUM === 0) await yieldToHost();
|
|
510
|
+
if (transportFailed || intentionalDisconnect) return;
|
|
511
|
+
}
|
|
512
|
+
streaming = true;
|
|
513
|
+
})().catch(sendError);
|
|
514
|
+
}
|
|
515
|
+
if (origin === "live") {
|
|
516
|
+
if (isLifecycleEvent(event)) {
|
|
517
|
+
startupLifecycle ??= event;
|
|
518
|
+
notifyLifecycle();
|
|
519
|
+
sendControl("session.lifecycle", { event });
|
|
520
|
+
}
|
|
521
|
+
if (!event.agentId) {
|
|
522
|
+
if (event.type === "user.message" || event.type === "session.context_cleared"
|
|
523
|
+
|| event.type === "session.snapshot_rewind" || event.type === "session.truncation") exitToolCallId = undefined;
|
|
524
|
+
if (event.type === "assistant.message" && Array.isArray(event.data?.toolRequests)) {
|
|
525
|
+
const exit = event.data.toolRequests.find((tool) => tool.name === "exit_plan_mode");
|
|
526
|
+
if (exit) exitToolCallId = exit.toolCallId;
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
if (capturingHistory && origin === "live" && typeof event.id === "string") initialLiveIds.add(event.id);
|
|
356
531
|
if (!streaming) {
|
|
357
|
-
|
|
358
|
-
|
|
532
|
+
const entry = { event, origin, toolCallId, chars: 0 };
|
|
533
|
+
bufferedEvents.set(bufferedTail++, entry);
|
|
534
|
+
entry.chars = JSON.stringify(event).length;
|
|
535
|
+
bufferedChars += entry.chars;
|
|
359
536
|
if (bufferedChars > MAX_PENDING_CHARS) {
|
|
360
537
|
sendError(new Error("Copilot observer SDK admission buffer exceeds the transport resource limit"));
|
|
361
538
|
}
|
|
362
539
|
return;
|
|
363
540
|
}
|
|
364
|
-
sendObservedEvent(event);
|
|
541
|
+
sendObservedEvent(event, origin, toolCallId);
|
|
365
542
|
void maybeDisconnectAfterObservedEvent(event).catch(sendError);
|
|
366
543
|
};
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
onExitPlanModeRequest: async (request) => {
|
|
371
|
-
onEvent({
|
|
372
|
-
type: "exit_plan_mode.requested",
|
|
373
|
-
data: request,
|
|
374
|
-
});
|
|
375
|
-
return {
|
|
376
|
-
approved: false,
|
|
377
|
-
feedback: "Plan captured by poly-weaver; wait for orchestration approval before implementation.",
|
|
378
|
-
};
|
|
379
|
-
},
|
|
380
|
-
});
|
|
381
|
-
observedSessionId = session.sessionId;
|
|
382
|
-
sendControl("session.joined", {
|
|
383
|
-
sessionId: session.sessionId,
|
|
384
|
-
workspacePath: session.workspacePath,
|
|
385
|
-
});
|
|
386
|
-
if (authResult.captureHistoryBaseline) {
|
|
387
|
-
const history = await session.getEvents();
|
|
388
|
-
if (!Array.isArray(history) || history.some((event) => typeof event?.id !== "string" || !event.id)) {
|
|
389
|
-
throw new Error("Observer SDK returned an invalid inherited-history boundary");
|
|
390
|
-
}
|
|
391
|
-
sendControl("inquiry.history_baseline", {
|
|
392
|
-
eventIds: history.map((event) => event.id).filter((id) => !initialLiveIds.has(id)),
|
|
393
|
-
});
|
|
394
|
-
capturingHistory = false;
|
|
395
|
-
initialLiveIds.clear();
|
|
396
|
-
}
|
|
397
|
-
if (authResult.replayHistory) {
|
|
398
|
-
await replaySessionHistory();
|
|
399
|
-
}
|
|
400
|
-
while (bufferedEvents.size > 0) {
|
|
401
|
-
const event = bufferedEvents.get(bufferedCursor);
|
|
402
|
-
bufferedEvents.delete(bufferedCursor++);
|
|
403
|
-
bufferedChars -= JSON.stringify(event).length;
|
|
404
|
-
sendObservedEvent(event);
|
|
405
|
-
void maybeDisconnectAfterObservedEvent(event).catch(sendError);
|
|
406
|
-
if (seq % WORK_QUANTUM === 0) {
|
|
407
|
-
await flushOutput();
|
|
408
|
-
await yieldToHost();
|
|
409
|
-
}
|
|
410
|
-
}
|
|
411
|
-
sendControl("subscription.ready");
|
|
412
|
-
streaming = true;
|
|
544
|
+
await attachSdk();
|
|
545
|
+
await publishAdmission();
|
|
546
|
+
if (transportFailed || intentionalDisconnect || transportAbort.signal.aborted) return;
|
|
413
547
|
const disconnectAfterReady = process.env[testEnv.disconnectAfterReady];
|
|
414
548
|
if (typeof disconnectAfterReady === "string" && disconnectAfterReady.length > 0) {
|
|
415
549
|
await disconnectObserverTransport(testEnv.disconnectAfterReadyDelayMs);
|
|
@@ -419,7 +553,139 @@ async function main() {
|
|
|
419
553
|
if (typeof failAfterReady === "string" && failAfterReady.length > 0) {
|
|
420
554
|
await sleep(optionalDelayMs(testEnv.failAfterReadyDelayMs));
|
|
421
555
|
await sendControlAndDrain("observer.error", { error: failAfterReady });
|
|
422
|
-
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
async function attachSdk() {
|
|
559
|
+
session = await joinSession({
|
|
560
|
+
suppressResumeEvent: false,
|
|
561
|
+
onEvent,
|
|
562
|
+
onExitPlanModeRequest: async (request) => {
|
|
563
|
+
onEvent({
|
|
564
|
+
type: "exit_plan_mode.requested",
|
|
565
|
+
data: request,
|
|
566
|
+
}, "bridge", exitToolCallId);
|
|
567
|
+
return {
|
|
568
|
+
approved: false,
|
|
569
|
+
feedback: "Plan captured by poly-weaver; wait for orchestration approval before implementation.",
|
|
570
|
+
};
|
|
571
|
+
},
|
|
572
|
+
});
|
|
573
|
+
observedSessionId = session.sessionId;
|
|
574
|
+
sendControl("session.joined", {
|
|
575
|
+
sessionId: session.sessionId,
|
|
576
|
+
workspacePath: session.workspacePath,
|
|
577
|
+
});
|
|
578
|
+
let onLifecycleAbort;
|
|
579
|
+
await Promise.race([
|
|
580
|
+
firstLifecycle,
|
|
581
|
+
new Promise((_, reject) => {
|
|
582
|
+
onLifecycleAbort = () => reject(new Error("SDK startup lifecycle wait interrupted"));
|
|
583
|
+
if (transportAbort.signal.aborted) onLifecycleAbort();
|
|
584
|
+
else transportAbort.signal.addEventListener("abort", onLifecycleAbort, { once: true });
|
|
585
|
+
}),
|
|
586
|
+
]).finally(() => transportAbort.signal.removeEventListener("abort", onLifecycleAbort));
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
async function publishAdmission() {
|
|
590
|
+
let snapshot;
|
|
591
|
+
try {
|
|
592
|
+
snapshot = await readSessionHistory();
|
|
593
|
+
await verifyStartupLifecycle(snapshot, authResult.recovery.afterEventId);
|
|
594
|
+
} catch (error) {
|
|
595
|
+
if (transportFailed || intentionalDisconnect || transportAbort.signal.aborted) return;
|
|
596
|
+
const explanation = error instanceof Error ? error.message : "SDK startup history verification failed";
|
|
597
|
+
if (authResult.recovery.mode === "suffix" || authResult.captureHistoryBaseline) {
|
|
598
|
+
await sendControlAndDrain("recovery.error", {
|
|
599
|
+
error: explanation,
|
|
600
|
+
recoveryRejection: error instanceof RecoveryEvidenceError ? error.rejection
|
|
601
|
+
: { stage: "history-read", boundary: "untrustworthy" },
|
|
602
|
+
});
|
|
603
|
+
intentionalDisconnect = true;
|
|
604
|
+
socket.end();
|
|
605
|
+
return;
|
|
606
|
+
}
|
|
607
|
+
sendControl("lifecycle.unverified", { error: explanation });
|
|
608
|
+
snapshot = undefined;
|
|
609
|
+
}
|
|
610
|
+
if (transportFailed || intentionalDisconnect || transportAbort.signal.aborted) return;
|
|
611
|
+
if (authResult.captureHistoryBaseline) {
|
|
612
|
+
const eventIds = [];
|
|
613
|
+
for (const event of snapshot.events) {
|
|
614
|
+
if (!initialLiveIds.has(event.id)) eventIds.push(event.id);
|
|
615
|
+
if (eventIds.length % WORK_QUANTUM === 0) await yieldToHost();
|
|
616
|
+
if (transportFailed || intentionalDisconnect || transportAbort.signal.aborted) return;
|
|
617
|
+
}
|
|
618
|
+
sendControl("inquiry.history_baseline", {
|
|
619
|
+
eventIds,
|
|
620
|
+
});
|
|
621
|
+
capturingHistory = false;
|
|
622
|
+
initialLiveIds.clear();
|
|
623
|
+
}
|
|
624
|
+
let history;
|
|
625
|
+
if (authResult.recovery.mode === "suffix") {
|
|
626
|
+
try {
|
|
627
|
+
history = await replaySessionHistory(snapshot, authResult.recovery.afterEventId);
|
|
628
|
+
} catch (error) {
|
|
629
|
+
await sendControlAndDrain("recovery.error", {
|
|
630
|
+
error: error instanceof Error ? error.message : String(error),
|
|
631
|
+
recoveryRejection: error instanceof RecoveryEvidenceError ? error.rejection
|
|
632
|
+
: { stage: "boundary-lookup", boundary: "unknown" },
|
|
633
|
+
});
|
|
634
|
+
intentionalDisconnect = true;
|
|
635
|
+
socket.end();
|
|
636
|
+
return;
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
const transientParents = new Map();
|
|
640
|
+
const callbackPositions = new Map();
|
|
641
|
+
while (bufferedEvents.size > 0) {
|
|
642
|
+
const { event, origin, toolCallId, chars } = bufferedEvents.get(bufferedCursor);
|
|
643
|
+
bufferedEvents.delete(bufferedCursor++);
|
|
644
|
+
bufferedChars -= chars;
|
|
645
|
+
const position = history?.positions.get(event.id);
|
|
646
|
+
const snapshotPosition = snapshot?.positions.get(event.id);
|
|
647
|
+
if (origin === "live" && snapshotPosition !== undefined) {
|
|
648
|
+
if (!matchesHistoryEvidence(event, snapshot.events[snapshotPosition])) {
|
|
649
|
+
await sendControlAndDrain("recovery.error", {
|
|
650
|
+
error: "SDK callback conflicts with its durable history record",
|
|
651
|
+
recoveryRejection: {
|
|
652
|
+
stage: "admission", boundary: boundaryAvailability(snapshot, authResult.recovery.afterEventId),
|
|
653
|
+
event: describeRecoveryEvent(event, origin, snapshot.positions, callbackPositions),
|
|
654
|
+
},
|
|
655
|
+
});
|
|
656
|
+
intentionalDisconnect = true;
|
|
657
|
+
socket.end();
|
|
658
|
+
return;
|
|
659
|
+
}
|
|
660
|
+
if (isLifecycleEvent(event) && event.ephemeral !== true) verifiedLifecycle.add(event);
|
|
661
|
+
}
|
|
662
|
+
const parentPosition = history?.positions.get(event.parentId) ?? transientParents.get(event.parentId);
|
|
663
|
+
const transient = event.ephemeral === true || event.type === "session.idle"
|
|
664
|
+
|| event.type === "abort" || event.type === "session.abort";
|
|
665
|
+
// Prefix exclusion is independent of callback arrival and known-ID deduplication.
|
|
666
|
+
const excluded = origin === "live" && history && (
|
|
667
|
+
(position !== undefined && position <= history.boundary)
|
|
668
|
+
|| (transient && parentPosition !== undefined && parentPosition < history.boundary)
|
|
669
|
+
);
|
|
670
|
+
if (transient && position === undefined && parentPosition !== undefined && typeof event.id === "string") {
|
|
671
|
+
transientParents.set(event.id, parentPosition);
|
|
672
|
+
}
|
|
673
|
+
if (typeof event.id === "string") callbackPositions.set(event.id, bufferedCursor);
|
|
674
|
+
if (!excluded) {
|
|
675
|
+
sendObservedEvent(event, origin, toolCallId);
|
|
676
|
+
void maybeDisconnectAfterObservedEvent(event).catch(sendError);
|
|
677
|
+
}
|
|
678
|
+
if (bufferedCursor % WORK_QUANTUM === 0) {
|
|
679
|
+
await flushOutput();
|
|
680
|
+
await yieldToHost();
|
|
681
|
+
}
|
|
682
|
+
if (transportFailed || intentionalDisconnect) return;
|
|
683
|
+
}
|
|
684
|
+
if (authResult.recovery.mode === "suffix") {
|
|
685
|
+
sendControl("recovery.end", { afterEventId: authResult.recovery.afterEventId });
|
|
686
|
+
}
|
|
687
|
+
sendControl("subscription.ready");
|
|
688
|
+
streaming = true;
|
|
423
689
|
}
|
|
424
690
|
}
|
|
425
691
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension.mjs","sourceRoot":"","sources":["../../../../../../../src/providers/copilot/observer-extension/com.github.copilot/extensions/poly-weaver-observer/extension.mjs"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"extension.mjs","sourceRoot":"","sources":["../../../../../../../src/providers/copilot/observer-extension/com.github.copilot/extensions/poly-weaver-observer/extension.mjs"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compare SDK evidence, not delivery metadata such as timestamps or sequence numbers.
|
|
3
|
+
* Omitted callback payload fields do not override the canonical history record.
|
|
4
|
+
* @param {Record<string, unknown>} callback
|
|
5
|
+
* @param {Record<string, unknown>} persisted
|
|
6
|
+
*/
|
|
7
|
+
export function matchesHistoryEvidence(callback: Record<string, unknown>, persisted: Record<string, unknown>): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Retain availability only, never callback bodies or opaque identifiers.
|
|
10
|
+
* @param {Record<string, unknown>} event
|
|
11
|
+
* @param {"live" | "history" | "bridge"} source
|
|
12
|
+
* @param {Map<string, number> | undefined} historyPositions
|
|
13
|
+
* @param {Map<string, number> | undefined} [callbackPositions]
|
|
14
|
+
* @returns {NonNullable<import("../../../../../types.js").ProviderObserverRecoveryRejection["event"]>}
|
|
15
|
+
*/
|
|
16
|
+
export function describeRecoveryEvent(event: Record<string, unknown>, source: "live" | "history" | "bridge", historyPositions: Map<string, number> | undefined, callbackPositions?: Map<string, number> | undefined): NonNullable<import("../../../../../types.js").ProviderObserverRecoveryRejection["event"]>;
|
|
17
|
+
//# sourceMappingURL=history-evidence.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history-evidence.d.mts","sourceRoot":"","sources":["../../../../../../../src/providers/copilot/observer-extension/com.github.copilot/extensions/poly-weaver-observer/history-evidence.mjs"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,iDAHW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,aACvB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,WAWjC;AAED;;;;;;;GAOG;AACH,6CANW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,UACvB,MAAM,GAAG,SAAS,GAAG,QAAQ,oBAC7B,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,sBAC/B,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAC7B,WAAW,CAAC,OAAO,yBAAyB,EAAE,iCAAiC,CAAC,OAAO,CAAC,CAAC,CAgBrG"}
|