@githolon/runtime 0.112.12 → 0.113.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/RUNTIME-SOURCES.sha256 +21 -21
- package/dist/application-reception.js +1 -1
- package/dist/nomos-native-runtime.js +457 -35
- package/dist/nomos-runner-web.js +44 -3
- package/dist/nomos-runner-worker.js +788 -79
- package/dist/nomos-runner.js +601 -68
- package/dist/remote-reception.cjs +3 -3
- package/dist/remote-reception.js +3 -3
- package/dist/typescript-application-desk.js +3 -3
- package/package.json +1 -1
- package/runner/build.ts +23 -11
- package/runner/node-entry.mjs +493 -37
- package/src/protocol/nomos/kernel/v1/kernel_pb.d.ts +13 -0
- package/src/protocol/nomos/kernel/v1/kernel_pb.js +1 -1
- package/src/protocol/nomos/runtime/v2/correspondence_desk_pb.d.ts +45 -1
- package/src/protocol/nomos/runtime/v2/correspondence_desk_pb.js +30 -23
- package/src/protocol/nomos/runtime/v2/observability_desk_pb.d.ts +13 -0
- package/src/protocol/nomos/runtime/v2/observability_desk_pb.js +1 -1
package/dist/nomos-runner-web.js
CHANGED
|
@@ -1,6 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
(() => {
|
|
3
3
|
// ../../platform-shells/browser/worker_page_entry.ts
|
|
4
|
+
var workerDigest = true ? "ade4b5cad661abe236e62493f1fae81a32cf1ff3275da2b4f2938a5eb3ae9754" : "";
|
|
5
|
+
var SLOW_OPERATION_MICROS = 1e6;
|
|
6
|
+
var slowOperationsReported = 0;
|
|
7
|
+
var bootStages = [];
|
|
8
|
+
var reportSlowOperation = (line) => {
|
|
9
|
+
const report = window.__nomosSlowOperation;
|
|
10
|
+
if (!report || slowOperationsReported >= 50) return;
|
|
11
|
+
try {
|
|
12
|
+
const json = line.slice(line.indexOf("{"));
|
|
13
|
+
const perf = JSON.parse(json);
|
|
14
|
+
if (perf.failed !== true && (typeof perf.totalUs !== "number" || perf.totalUs < SLOW_OPERATION_MICROS)) return;
|
|
15
|
+
slowOperationsReported++;
|
|
16
|
+
report(json);
|
|
17
|
+
} catch {
|
|
18
|
+
}
|
|
19
|
+
};
|
|
4
20
|
var worker;
|
|
5
21
|
var booting;
|
|
6
22
|
var bootResolve;
|
|
@@ -30,9 +46,22 @@
|
|
|
30
46
|
switch (message.kind) {
|
|
31
47
|
case "boot-progress":
|
|
32
48
|
console.debug("[nomos-peer-boot]", message.stage);
|
|
49
|
+
bootStages.push(message.stage);
|
|
50
|
+
if (/^\d+ms peer ready$/.test(message.stage) && Number.parseInt(message.stage, 10) >= 2e3) {
|
|
51
|
+
reportSlowOperation(JSON.stringify({ op: "peer_boot", totalUs: Number.parseInt(message.stage, 10) * 1e3, stages: bootStages }));
|
|
52
|
+
}
|
|
33
53
|
break;
|
|
34
54
|
case "custody-perf":
|
|
35
55
|
console.debug("[nomos-custody-perf]", JSON.stringify(message.timing));
|
|
56
|
+
{
|
|
57
|
+
const timing = message.timing;
|
|
58
|
+
const totalMs = (timing.snapshotMs ?? 0) + (timing.commitMs ?? 0);
|
|
59
|
+
if (totalMs >= 500) reportSlowOperation(JSON.stringify({ op: "custody_checkpoint", totalUs: Math.round(totalMs * 1e3), ...message.timing }));
|
|
60
|
+
}
|
|
61
|
+
break;
|
|
62
|
+
case "kernel-perf":
|
|
63
|
+
console.debug("[nomos-worker]", message.line);
|
|
64
|
+
reportSlowOperation(message.line);
|
|
36
65
|
break;
|
|
37
66
|
case "booted":
|
|
38
67
|
bootResolve?.();
|
|
@@ -40,7 +69,11 @@
|
|
|
40
69
|
bootReject = void 0;
|
|
41
70
|
break;
|
|
42
71
|
case "boot-failed":
|
|
72
|
+
console.warn("[nomos-peer-boot] failed:", message.error);
|
|
73
|
+
reportSlowOperation(JSON.stringify({ op: "peer_boot_failure", failed: true, error: message.error, stages: bootStages }));
|
|
43
74
|
fail(new Error(message.error));
|
|
75
|
+
worker?.terminate();
|
|
76
|
+
worker = void 0;
|
|
44
77
|
break;
|
|
45
78
|
case "disposed":
|
|
46
79
|
if (message.error) closeReject?.(new Error(message.error));
|
|
@@ -89,10 +122,18 @@
|
|
|
89
122
|
if (closing) return closing.then(() => window.__nomosBootRuntime(base));
|
|
90
123
|
if (worker && !bootResolve) return booting ?? Promise.resolve();
|
|
91
124
|
if (booting) return booting;
|
|
92
|
-
const
|
|
93
|
-
if (!
|
|
125
|
+
const configured = window.__nomosWorkerUrl;
|
|
126
|
+
if (!configured) return Promise.reject(new Error("Nomos Web Worker URL is not configured"));
|
|
127
|
+
const url = workerDigest ? `${configured}${configured.includes("?") ? "&" : "?"}v=${workerDigest}` : configured;
|
|
94
128
|
try {
|
|
95
129
|
console.debug("[nomos-peer-boot]", "starting worker", url);
|
|
130
|
+
bootStages = [`${Math.round(performance.now())}ms page time: starting worker`];
|
|
131
|
+
const watched = bootStages;
|
|
132
|
+
setTimeout(() => {
|
|
133
|
+
if (watched === bootStages && !watched.some((stage) => / peer ready$/.test(stage))) {
|
|
134
|
+
reportSlowOperation(JSON.stringify({ op: "peer_boot_stalled", failed: true, stages: watched }));
|
|
135
|
+
}
|
|
136
|
+
}, 1e4);
|
|
96
137
|
worker = new Worker(url);
|
|
97
138
|
worker.onmessage = (event) => receive(event.data);
|
|
98
139
|
worker.onerror = (event) => {
|
|
@@ -116,7 +157,7 @@
|
|
|
116
157
|
const id = ++nextId;
|
|
117
158
|
return new Promise((resolve, reject) => {
|
|
118
159
|
pending.set(id, { resolve, reject });
|
|
119
|
-
send({ kind: "invoke", id, frame: frameBase64 });
|
|
160
|
+
send({ kind: "invoke", id, frame: frameBase64, sentAt: Date.now() });
|
|
120
161
|
});
|
|
121
162
|
};
|
|
122
163
|
window.__nomosKernelWorkSnapshot = () => lastSnapshot;
|