@schoolai/shipyard 3.30.0-rc.20260913.0 → 3.30.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/capability-detector-worker.js +4 -4
- package/dist/{chunk-KFCIZHQW.js → chunk-22TVFTWD.js} +20 -1
- package/dist/{chunk-KFCIZHQW.js.map → chunk-22TVFTWD.js.map} +1 -1
- package/dist/{chunk-XJVXQA7C.js → chunk-42SK2S4V.js} +8 -1
- package/dist/chunk-42SK2S4V.js.map +1 -0
- package/dist/{chunk-JQFAXWT5.js → chunk-CW2PKTA6.js} +2 -2
- package/dist/{chunk-VE2ZAUIM.js → chunk-JM2E5QZ5.js} +2 -2
- package/dist/{chunk-NNNYGFSQ.js → chunk-ZSMWOXEN.js} +4 -4
- package/dist/cursor-runner.js +2 -2
- package/dist/electron-utility.js +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/{mcp-servers-DUHUR7NY.js → mcp-servers-LTYMM2F2.js} +2 -2
- package/dist/{plan-backfill-5UGECNV6.js → plan-backfill-G5ZN6E5L.js} +3 -3
- package/dist/{serve-4ZPHPIJQ.js → serve-3TQOIJID.js} +89 -13
- package/dist/{serve-4ZPHPIJQ.js.map → serve-3TQOIJID.js.map} +1 -1
- package/dist/{start-RAURVEMV.js → start-6KMPC5RK.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-XJVXQA7C.js.map +0 -1
- /package/dist/{chunk-JQFAXWT5.js.map → chunk-CW2PKTA6.js.map} +0 -0
- /package/dist/{chunk-VE2ZAUIM.js.map → chunk-JM2E5QZ5.js.map} +0 -0
- /package/dist/{chunk-NNNYGFSQ.js.map → chunk-ZSMWOXEN.js.map} +0 -0
- /package/dist/{mcp-servers-DUHUR7NY.js.map → mcp-servers-LTYMM2F2.js.map} +0 -0
- /package/dist/{plan-backfill-5UGECNV6.js.map → plan-backfill-G5ZN6E5L.js.map} +0 -0
- /package/dist/{start-RAURVEMV.js.map → start-6KMPC5RK.js.map} +0 -0
|
@@ -40,7 +40,7 @@ import {
|
|
|
40
40
|
startPlanBackfillForDaemon,
|
|
41
41
|
sync,
|
|
42
42
|
validatePeerId
|
|
43
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-JM2E5QZ5.js";
|
|
44
44
|
import {
|
|
45
45
|
loadAuthToken
|
|
46
46
|
} from "./chunk-XPYW5WQS.js";
|
|
@@ -188,7 +188,7 @@ import {
|
|
|
188
188
|
unresolveReviewThread,
|
|
189
189
|
withLabelAsync,
|
|
190
190
|
writeCursorApiKeyToVault
|
|
191
|
-
} from "./chunk-
|
|
191
|
+
} from "./chunk-ZSMWOXEN.js";
|
|
192
192
|
import {
|
|
193
193
|
classifySkill,
|
|
194
194
|
detectSkills,
|
|
@@ -232,7 +232,7 @@ import {
|
|
|
232
232
|
resolveStdioEnv,
|
|
233
233
|
setTelemetrySink,
|
|
234
234
|
telemeter
|
|
235
|
-
} from "./chunk-
|
|
235
|
+
} from "./chunk-42SK2S4V.js";
|
|
236
236
|
import {
|
|
237
237
|
atomicWriteFile,
|
|
238
238
|
findProjectRoot,
|
|
@@ -256,7 +256,7 @@ import {
|
|
|
256
256
|
createAssetResolver,
|
|
257
257
|
toSdkContent,
|
|
258
258
|
toSdkPermissionMode
|
|
259
|
-
} from "./chunk-
|
|
259
|
+
} from "./chunk-CW2PKTA6.js";
|
|
260
260
|
import {
|
|
261
261
|
AGENT_IDS,
|
|
262
262
|
AGENT_SYSTEM_CLAUDE_CODE,
|
|
@@ -465,7 +465,7 @@ import {
|
|
|
465
465
|
unsafeAssertSourceId,
|
|
466
466
|
vizFileExtension,
|
|
467
467
|
withPreferredRuntimeAuthMethod
|
|
468
|
-
} from "./chunk-
|
|
468
|
+
} from "./chunk-22TVFTWD.js";
|
|
469
469
|
import {
|
|
470
470
|
AuthGitHubCallbackRequestSchema,
|
|
471
471
|
AuthGitHubCallbackResponseSchema,
|
|
@@ -14421,6 +14421,8 @@ function buildBrowserMetricsTelemetry(msg) {
|
|
|
14421
14421
|
runtimeTransport: msg.runtime?.transport ?? null,
|
|
14422
14422
|
visibility: m2.visibility,
|
|
14423
14423
|
tabAgeMs: m2.tabAgeMs,
|
|
14424
|
+
heapPressureLevel: m2.heapPressureLevel ?? null,
|
|
14425
|
+
heapPressureAction: m2.heapPressureAction ?? null,
|
|
14424
14426
|
heapUsedBytes: m2.heap?.usedBytes ?? null,
|
|
14425
14427
|
heapTotalBytes: m2.heap?.totalBytes ?? null,
|
|
14426
14428
|
heapLimitBytes: m2.heap?.limitBytes ?? null,
|
|
@@ -14685,6 +14687,42 @@ function flattenControlChannel(v2) {
|
|
|
14685
14687
|
controlChannelByType: v2?.byType ?? null
|
|
14686
14688
|
};
|
|
14687
14689
|
}
|
|
14690
|
+
function buildHeapPressureTelemetry(msg, controlPeerId) {
|
|
14691
|
+
const level = msg.metrics.heapPressureLevel;
|
|
14692
|
+
if (level !== "shed" && level !== "critical") return null;
|
|
14693
|
+
const heap = msg.metrics.heap;
|
|
14694
|
+
return {
|
|
14695
|
+
level,
|
|
14696
|
+
/** What the renderer DID about it, reported one sample late by design. */
|
|
14697
|
+
action: msg.metrics.heapPressureAction ?? null,
|
|
14698
|
+
controlPeerId,
|
|
14699
|
+
heapUsedBytes: heap?.usedBytes ?? null,
|
|
14700
|
+
heapLimitBytes: heap?.limitBytes ?? null,
|
|
14701
|
+
heapUsedRatio: heap && heap.limitBytes > 0 ? Number((heap.usedBytes / heap.limitBytes).toFixed(4)) : null,
|
|
14702
|
+
visibility: msg.metrics.visibility,
|
|
14703
|
+
tabAgeMs: msg.metrics.tabAgeMs
|
|
14704
|
+
};
|
|
14705
|
+
}
|
|
14706
|
+
function forwardBrowserMetricsSample(msg, controlPeerId, sinks) {
|
|
14707
|
+
try {
|
|
14708
|
+
sinks.logAdapter(buildBrowserMetricsLogEntry(msg, controlPeerId));
|
|
14709
|
+
sinks.captureBrowserMetricsSample(buildBrowserMetricsTelemetry(msg));
|
|
14710
|
+
const heapPressure = buildHeapPressureTelemetry(msg, controlPeerId);
|
|
14711
|
+
if (heapPressure) {
|
|
14712
|
+
sinks.logAdapter({ event: "renderer_heap_pressure", ...heapPressure });
|
|
14713
|
+
sinks.telemeterHeapPressure(heapPressure);
|
|
14714
|
+
}
|
|
14715
|
+
} catch (err3) {
|
|
14716
|
+
try {
|
|
14717
|
+
sinks.logAdapter({
|
|
14718
|
+
event: "browser_metrics_sample_failed",
|
|
14719
|
+
controlPeerId,
|
|
14720
|
+
error: err3 instanceof Error ? err3.message : String(err3)
|
|
14721
|
+
});
|
|
14722
|
+
} catch {
|
|
14723
|
+
}
|
|
14724
|
+
}
|
|
14725
|
+
}
|
|
14688
14726
|
|
|
14689
14727
|
// src/services/channels/auth/agent-auth-verifier.ts
|
|
14690
14728
|
var AUTH_CONVERGENCE_RUNTIMES = /* @__PURE__ */ new Set(["codex", "cursor", "claude-code", "devin"]);
|
|
@@ -17923,7 +17961,7 @@ async function refreshPluginCapabilities(daemon, tokenStore) {
|
|
|
17923
17961
|
const userSettings = await daemon.userSettingsStore.getSettings();
|
|
17924
17962
|
const [updatedMarketplace, updatedMcp, updatedSkills] = await Promise.all([
|
|
17925
17963
|
detectMarketplacePlugins(daemon.capabilities.marketplacePlugins),
|
|
17926
|
-
import("./mcp-servers-
|
|
17964
|
+
import("./mcp-servers-LTYMM2F2.js").then(
|
|
17927
17965
|
(m2) => m2.detectMCPServers(
|
|
17928
17966
|
daemon.capabilities.environments,
|
|
17929
17967
|
tokenStore,
|
|
@@ -28066,11 +28104,11 @@ function wireControlChannel(rawChannel, daemon, logAdapter, deps) {
|
|
|
28066
28104
|
* signals are queryable across the fleet, not just in one machine's log.
|
|
28067
28105
|
*/
|
|
28068
28106
|
onBrowserMetricsSample: (msg) => {
|
|
28069
|
-
|
|
28070
|
-
|
|
28071
|
-
"browser_metrics_sample",
|
|
28072
|
-
|
|
28073
|
-
);
|
|
28107
|
+
forwardBrowserMetricsSample(msg, controlPeerId, {
|
|
28108
|
+
logAdapter,
|
|
28109
|
+
captureBrowserMetricsSample: (payload) => daemon.metricsCollector.capture("browser_metrics_sample", payload),
|
|
28110
|
+
telemeterHeapPressure: (payload) => telemeter("renderer_heap_pressure", payload)
|
|
28111
|
+
});
|
|
28074
28112
|
},
|
|
28075
28113
|
onBrowserThrottledDetected: (msg) => {
|
|
28076
28114
|
logAdapter({ event: "browser_throttled_detected", controlPeerId, ...msg });
|
|
@@ -31404,6 +31442,33 @@ async function setupLocalDirect(deps) {
|
|
|
31404
31442
|
}
|
|
31405
31443
|
|
|
31406
31444
|
// src/services/metrics/electron-app-metrics-rpc.ts
|
|
31445
|
+
var APP_METRICS_MIRROR_INTERVAL_MS = 6e4;
|
|
31446
|
+
var APP_METRICS_MIRROR_BYTES_STEP = 1024 * 1024 * 1024;
|
|
31447
|
+
var INITIAL_APP_METRICS_MIRROR_STATE = {
|
|
31448
|
+
lastMirrorAtMs: null,
|
|
31449
|
+
lastLargestGiB: null
|
|
31450
|
+
};
|
|
31451
|
+
function decideAppMetricsMirror(state, largestProcessWorkingSetBytes, nowMs) {
|
|
31452
|
+
const largestGiB = largestProcessWorkingSetBytes === null || !Number.isFinite(largestProcessWorkingSetBytes) ? null : Math.floor(largestProcessWorkingSetBytes / APP_METRICS_MIRROR_BYTES_STEP);
|
|
31453
|
+
const carriedGiB = largestGiB === null ? state.lastLargestGiB : Math.max(largestGiB, state.lastLargestGiB ?? largestGiB);
|
|
31454
|
+
const crossed = largestGiB !== null && largestGiB >= 1 && (state.lastLargestGiB === null || largestGiB > state.lastLargestGiB);
|
|
31455
|
+
if (crossed) {
|
|
31456
|
+
return {
|
|
31457
|
+
mirror: true,
|
|
31458
|
+
reason: "gib_crossing",
|
|
31459
|
+
next: { lastMirrorAtMs: nowMs, lastLargestGiB: largestGiB }
|
|
31460
|
+
};
|
|
31461
|
+
}
|
|
31462
|
+
const dueForHeartbeat = state.lastMirrorAtMs === null || nowMs - state.lastMirrorAtMs >= APP_METRICS_MIRROR_INTERVAL_MS;
|
|
31463
|
+
if (dueForHeartbeat) {
|
|
31464
|
+
return {
|
|
31465
|
+
mirror: true,
|
|
31466
|
+
reason: "heartbeat",
|
|
31467
|
+
next: { lastMirrorAtMs: nowMs, lastLargestGiB: carriedGiB }
|
|
31468
|
+
};
|
|
31469
|
+
}
|
|
31470
|
+
return { mirror: false, next: { ...state, lastLargestGiB: carriedGiB } };
|
|
31471
|
+
}
|
|
31407
31472
|
var FORWARDABLE_TELEMETER_EVENTS = [
|
|
31408
31473
|
"squirrel_install_stuck_recovered",
|
|
31409
31474
|
"electron_renderer_process_gone",
|
|
@@ -31411,12 +31476,23 @@ var FORWARDABLE_TELEMETER_EVENTS = [
|
|
|
31411
31476
|
"electron_renderer_reload_circuit_open"
|
|
31412
31477
|
];
|
|
31413
31478
|
var FORWARDABLE_EVENT_NAMES = new Set(FORWARDABLE_TELEMETER_EVENTS);
|
|
31414
|
-
function registerElectronAppMetricsRpc(parentPort2, log) {
|
|
31479
|
+
function registerElectronAppMetricsRpc(parentPort2, log, now = Date.now) {
|
|
31480
|
+
let mirrorState = INITIAL_APP_METRICS_MIRROR_STATE;
|
|
31415
31481
|
parentPort2.on("message", (event) => {
|
|
31416
31482
|
const data = event.data;
|
|
31417
31483
|
const metricsPayload = readAppMetricsPayload(data);
|
|
31418
31484
|
if (metricsPayload) {
|
|
31419
31485
|
telemeter("electron_app_metrics", metricsPayload);
|
|
31486
|
+
const largest = metricsPayload.largestProcessWorkingSetBytes;
|
|
31487
|
+
const decision = decideAppMetricsMirror(
|
|
31488
|
+
mirrorState,
|
|
31489
|
+
typeof largest === "number" ? largest : null,
|
|
31490
|
+
now()
|
|
31491
|
+
);
|
|
31492
|
+
mirrorState = decision.next;
|
|
31493
|
+
if (decision.mirror) {
|
|
31494
|
+
log({ event: "electron_app_metrics", mirrorReason: decision.reason, ...metricsPayload });
|
|
31495
|
+
}
|
|
31420
31496
|
return;
|
|
31421
31497
|
}
|
|
31422
31498
|
const telemeterPayload = readTelemeterPayload(data);
|
|
@@ -117334,4 +117410,4 @@ export {
|
|
|
117334
117410
|
decideWorkspaceScope,
|
|
117335
117411
|
serve
|
|
117336
117412
|
};
|
|
117337
|
-
//# sourceMappingURL=serve-
|
|
117413
|
+
//# sourceMappingURL=serve-3TQOIJID.js.map
|