@vgai/sdk 0.5.18 → 0.5.20
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/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@vgai/sdk",
|
|
3
3
|
"author": "Volter AI, Inc.",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
|
-
"version": "0.5.
|
|
5
|
+
"version": "0.5.20",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
33
|
-
"@vgai/engine": "0.5.
|
|
33
|
+
"@vgai/engine": "0.5.20",
|
|
34
34
|
"playwright": "^1.58.2",
|
|
35
35
|
"zod": "^4.3.6"
|
|
36
36
|
}
|
|
@@ -102,6 +102,29 @@ export type SessionJournalEvent =
|
|
|
102
102
|
readonly name: string | null;
|
|
103
103
|
readonly logFile: string | null;
|
|
104
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* A relayed command ran out of budget, and WHICH PLAY-BOOT STEP the page was
|
|
107
|
+
* inside when it did.
|
|
108
|
+
*
|
|
109
|
+
* The row exists because its absence was the defect. Measured 2026-08-20 at
|
|
110
|
+
* N=20000 on the canvas lane: `play` (120s), `screenshot` (15s) and `stop`
|
|
111
|
+
* (30s) all expired against a tab whose WORKER heartbeat kept beating at
|
|
112
|
+
* 0.4s, and the journal's whole account of it was three `command-result`
|
|
113
|
+
* lines saying "the tab is present … and did not respond" — true, and about
|
|
114
|
+
* the tab rather than the page. `phase` is the page's own last word before it
|
|
115
|
+
* went quiet (`editor/src/play-boot-phase.ts`); `null` means no play boot was
|
|
116
|
+
* in flight, which is itself an answer.
|
|
117
|
+
*/
|
|
118
|
+
| {
|
|
119
|
+
readonly kind: 'play-stall';
|
|
120
|
+
readonly command: string;
|
|
121
|
+
readonly requestId8: string;
|
|
122
|
+
readonly phase: string | null;
|
|
123
|
+
/** How long the page had been in that phase. `null` with a null phase. */
|
|
124
|
+
readonly phaseAgeMs: number | null;
|
|
125
|
+
/** The budget the command actually waited out. */
|
|
126
|
+
readonly waitedMs: number;
|
|
127
|
+
}
|
|
105
128
|
/**
|
|
106
129
|
* THE TRANSPORT ARM. Everything below is one line per transport or
|
|
107
130
|
* presence fact, and it exists because the journal was BLIND to all of
|
|
@@ -469,6 +492,14 @@ export function formatJournalLine(line: SessionJournalLine): string {
|
|
|
469
492
|
return `journal: ${at} validation ${line.ok ? 'ok' : 'FAILED'} ${line.path}`;
|
|
470
493
|
case 'play':
|
|
471
494
|
return `journal: ${at} play ${line.action}${line.name === null ? '' : ` [${line.name}]`}`;
|
|
495
|
+
case 'play-stall':
|
|
496
|
+
return (
|
|
497
|
+
`journal: ${at} play-stall ${line.command} ${line.requestId8} after ` +
|
|
498
|
+
`${Math.round(line.waitedMs / 1000)}s — ` +
|
|
499
|
+
(line.phase === null
|
|
500
|
+
? 'no play boot was in flight'
|
|
501
|
+
: `stuck in "${line.phase}" for ${Math.round((line.phaseAgeMs ?? 0) / 1000)}s`)
|
|
502
|
+
);
|
|
472
503
|
case 'session-started':
|
|
473
504
|
return `journal: ${at} session-started pid ${line.pid}`;
|
|
474
505
|
case 'project-opened':
|