@camstack/system 1.2.175 → 1.2.177
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/addon-runner.js +2 -3
- package/dist/addon-runner.mjs +2 -3
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
- package/dist/builtins/alerts/alerts.addon.js +1 -1
- package/dist/builtins/alerts/alerts.addon.mjs +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
- package/dist/builtins/console-logging/index.js +1 -1
- package/dist/builtins/console-logging/index.mjs +1 -1
- package/dist/builtins/core-blocks/core-blocks.addon.js +1 -1
- package/dist/builtins/core-blocks/core-blocks.addon.mjs +1 -1
- package/dist/builtins/device-manager/device-manager.addon.js +2 -2
- package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
- package/dist/builtins/doorbell/virtual-doorbell.addon.js +1 -1
- package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +1 -1
- package/dist/builtins/hub-forwarder/index.js +1 -1
- package/dist/builtins/hub-forwarder/index.mjs +1 -1
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
- package/dist/builtins/local-auth/local-auth.addon.js +1 -1
- package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
- package/dist/builtins/local-network/local-network.addon.js +1 -1
- package/dist/builtins/local-network/local-network.addon.mjs +1 -1
- package/dist/builtins/loki-logging/index.js +1 -1
- package/dist/builtins/loki-logging/index.mjs +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.d.ts +0 -1
- package/dist/builtins/native-metrics/native-metrics.addon.js +2 -40
- package/dist/builtins/native-metrics/native-metrics.addon.mjs +2 -40
- package/dist/builtins/platform-probe/index.js +1 -1
- package/dist/builtins/platform-probe/index.mjs +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
- package/dist/builtins/snapshot/index.js +1 -1
- package/dist/builtins/snapshot/index.mjs +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
- package/dist/builtins/system-config/system-config.addon.js +1 -1
- package/dist/builtins/system-config/system-config.addon.mjs +1 -1
- package/dist/builtins/winston-logging/index.js +1 -1
- package/dist/builtins/winston-logging/index.mjs +1 -1
- package/dist/{dist-B25PDvaS.mjs → dist-C-8k9Z9W.mjs} +48 -37
- package/dist/{dist-BzPNEPHo.js → dist-DkVaJ5vG.js} +48 -37
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -4
- package/dist/index.mjs +3 -3
- package/dist/kernel/heap-allocation-sample.d.ts +107 -0
- package/dist/kernel/heap-spaces.d.ts +1 -6
- package/dist/{manifest-system-deps-Pw8iaY5X.mjs → manifest-system-deps-4NeY_8iQ.mjs} +3 -36
- package/dist/{manifest-system-deps-B0mzJPmb.js → manifest-system-deps-BbB94ozU.js} +2 -47
- package/dist/{retired-settings-keys-DZmeJ8ja.js → retired-settings-keys-B1ij-xtH.js} +1 -1
- package/dist/{retired-settings-keys-tWdiQpwa.mjs → retired-settings-keys-wfKn2-Sk.mjs} +1 -1
- package/package.json +1 -1
|
@@ -11726,6 +11726,35 @@ var filesystemBrowseCapability = {
|
|
|
11726
11726
|
}
|
|
11727
11727
|
};
|
|
11728
11728
|
/**
|
|
11729
|
+
* Transport bounds for AI capability methods.
|
|
11730
|
+
*
|
|
11731
|
+
* Its own module because `llm.cap.ts` and `llm-runtime.cap.ts` already import
|
|
11732
|
+
* each other: declaring the constant in either one hands the other `undefined`
|
|
11733
|
+
* at module-init time, and an undefined `timeoutMs` silently falls back to the
|
|
11734
|
+
* kernel's 60 s default — the exact failure this constant exists to prevent,
|
|
11735
|
+
* reintroduced invisibly. Found by the guard, not by review.
|
|
11736
|
+
*/
|
|
11737
|
+
/**
|
|
11738
|
+
* Ceiling for a cap method that runs inference or loads a model.
|
|
11739
|
+
*
|
|
11740
|
+
* Deliberately far above anything the AI layer itself may wait for (a summary
|
|
11741
|
+
* asks 180 s by default, a rule may ask 600 s), because the TRANSPORT must
|
|
11742
|
+
* never be the layer that gives up first: when it does, the failure is
|
|
11743
|
+
* reported as a transport error for a model that was still thinking, naming
|
|
11744
|
+
* the wrong layer and hiding the real one.
|
|
11745
|
+
*
|
|
11746
|
+
* Measured 2026-09-03: a 6-image vision request needs 44.8 s warm and ~20 s
|
|
11747
|
+
* more on a cold model load. With no declaration every digest failed at
|
|
11748
|
+
* exactly 60 s and shipped without its text.
|
|
11749
|
+
*
|
|
11750
|
+
* A ceiling, not a budget. The AI layer's own timeouts (the rule's `timeoutMs`,
|
|
11751
|
+
* the profile's `timeoutMs` / `firstTokenTimeoutMs`) remain the things that
|
|
11752
|
+
* decide when to stop, because only they can say WHY.
|
|
11753
|
+
*/
|
|
11754
|
+
var AI_CAP_TRANSPORT_TIMEOUT_MS = 6e5;
|
|
11755
|
+
/** A multi-gigabyte download. An hour is not generous, it is honest. */
|
|
11756
|
+
var AI_MODEL_INSTALL_TIMEOUT_MS = 60 * 6e4;
|
|
11757
|
+
/**
|
|
11729
11758
|
* Shared LLM generate contracts — imported by BOTH `llm.cap.ts` (consumer
|
|
11730
11759
|
* surface) and `llm-runtime.cap.ts` (node-side managed executor) so the two
|
|
11731
11760
|
* caps stay wire-compatible without a circular cap→cap import.
|
|
@@ -12018,11 +12047,13 @@ var llmRuntimeCapability = {
|
|
|
12018
12047
|
timeoutMs: z.number().int().positive().optional()
|
|
12019
12048
|
}), LlmGenerateResultSchema, {
|
|
12020
12049
|
kind: "mutation",
|
|
12021
|
-
auth: "admin"
|
|
12050
|
+
auth: "admin",
|
|
12051
|
+
timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
|
|
12022
12052
|
}),
|
|
12023
12053
|
ensureStarted: method(z.object({ runtime: ManagedRuntimeConfigSchema }), LlmRuntimeStatusSchema, {
|
|
12024
12054
|
kind: "mutation",
|
|
12025
|
-
auth: "admin"
|
|
12055
|
+
auth: "admin",
|
|
12056
|
+
timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
|
|
12026
12057
|
}),
|
|
12027
12058
|
stop: method(z.object({}), z.void(), {
|
|
12028
12059
|
kind: "mutation",
|
|
@@ -12031,7 +12062,8 @@ var llmRuntimeCapability = {
|
|
|
12031
12062
|
status: method(z.object({}), LlmRuntimeStatusSchema, { auth: "admin" }),
|
|
12032
12063
|
installModel: method(z.object({ model: ManagedModelRefSchema }), z.void(), {
|
|
12033
12064
|
kind: "mutation",
|
|
12034
|
-
auth: "admin"
|
|
12065
|
+
auth: "admin",
|
|
12066
|
+
timeoutMs: AI_MODEL_INSTALL_TIMEOUT_MS
|
|
12035
12067
|
}),
|
|
12036
12068
|
deleteModel: method(z.object({ file: z.string() }), z.void(), {
|
|
12037
12069
|
kind: "mutation",
|
|
@@ -12213,8 +12245,14 @@ var llmCapability = {
|
|
|
12213
12245
|
/** `nodeId` inputs below are DATA (the hub provider pins itself), never routing. */
|
|
12214
12246
|
nodeIdMode: "data",
|
|
12215
12247
|
methods: {
|
|
12216
|
-
generate: method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, {
|
|
12217
|
-
|
|
12248
|
+
generate: method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, {
|
|
12249
|
+
kind: "mutation",
|
|
12250
|
+
timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
|
|
12251
|
+
}),
|
|
12252
|
+
generateVision: method(GenerateVisionInputSchema, LlmGenerateResultSchema, {
|
|
12253
|
+
kind: "mutation",
|
|
12254
|
+
timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
|
|
12255
|
+
}),
|
|
12218
12256
|
/**
|
|
12219
12257
|
* Stop a generation started with a `requestId`.
|
|
12220
12258
|
*
|
|
@@ -12238,7 +12276,8 @@ var llmCapability = {
|
|
|
12238
12276
|
}),
|
|
12239
12277
|
testProfile: method(ProfileRefInputSchema, LlmGenerateResultSchema, {
|
|
12240
12278
|
kind: "mutation",
|
|
12241
|
-
auth: "admin"
|
|
12279
|
+
auth: "admin",
|
|
12280
|
+
timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
|
|
12242
12281
|
}),
|
|
12243
12282
|
/** Live vendor enumeration (GET /models etc.). */
|
|
12244
12283
|
listModels: method(ProfileRefInputSchema, z.array(z.string())),
|
|
@@ -12803,17 +12842,6 @@ var ContainerMemoryPointSchema = z.object({
|
|
|
12803
12842
|
*/
|
|
12804
12843
|
gpuShmemBytes: z.number().nullable()
|
|
12805
12844
|
}).extend({ atMs: z.number() });
|
|
12806
|
-
var DumpHeapSnapshotInputSchema = z.object({
|
|
12807
|
-
/** The addon whose runner should dump a heap snapshot. */
|
|
12808
|
-
addonId: z.string() });
|
|
12809
|
-
var DumpHeapSnapshotResultSchema = z.object({
|
|
12810
|
-
success: z.boolean(),
|
|
12811
|
-
/** Path of the written .heapsnapshot inside the runner's container/host. */
|
|
12812
|
-
path: z.string().optional(),
|
|
12813
|
-
/** Process pid that was signalled. */
|
|
12814
|
-
pid: z.number().optional(),
|
|
12815
|
-
reason: z.string().optional()
|
|
12816
|
-
});
|
|
12817
12845
|
/**
|
|
12818
12846
|
* One point of one function's series.
|
|
12819
12847
|
*
|
|
@@ -13002,19 +13030,7 @@ var metricsProviderCapability = {
|
|
|
13002
13030
|
* agent's ring alone (`durable: false`). Empty is a legitimate answer: a
|
|
13003
13031
|
* node nobody has heard from has no series, and saying so is the truth.
|
|
13004
13032
|
*/
|
|
13005
|
-
getLoadSeries: method(GetLoadSeriesInputSchema, NodeLoadSeriesSchema)
|
|
13006
|
-
/**
|
|
13007
|
-
* Tell the addon's forked runner to write a V8 heap snapshot to disk (via
|
|
13008
|
-
* SIGUSR2 — the runner's diagnostic handler). Also logs its
|
|
13009
|
-
* `process.memoryUsage()` + heap-space breakdown. Resolves the pid from
|
|
13010
|
-
* `$process.list`, so it can only reach a runner this node spawned. Use
|
|
13011
|
-
* for deep per-addon memory attribution; copy the returned path off the
|
|
13012
|
-
* node to analyze.
|
|
13013
|
-
*/
|
|
13014
|
-
dumpHeapSnapshot: method(DumpHeapSnapshotInputSchema, DumpHeapSnapshotResultSchema, {
|
|
13015
|
-
kind: "mutation",
|
|
13016
|
-
auth: "admin"
|
|
13017
|
-
})
|
|
13033
|
+
getLoadSeries: method(GetLoadSeriesInputSchema, NodeLoadSeriesSchema)
|
|
13018
13034
|
}
|
|
13019
13035
|
};
|
|
13020
13036
|
var modelConvertCapability = {
|
|
@@ -17738,7 +17754,8 @@ var MediaFileKindEnum = z.enum([
|
|
|
17738
17754
|
"plateCrop",
|
|
17739
17755
|
"keyFrame",
|
|
17740
17756
|
"keyFrameSmall",
|
|
17741
|
-
"thumbnailSmall"
|
|
17757
|
+
"thumbnailSmall",
|
|
17758
|
+
"sceneFrame"
|
|
17742
17759
|
]);
|
|
17743
17760
|
/**
|
|
17744
17761
|
* One media row ON THE WIRE: what it is, how big it is, and WHERE ITS BYTES
|
|
@@ -36842,12 +36859,6 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
36842
36859
|
addonId: null,
|
|
36843
36860
|
access: "view"
|
|
36844
36861
|
},
|
|
36845
|
-
"metricsProvider.dumpHeapSnapshot": {
|
|
36846
|
-
capName: "metrics-provider",
|
|
36847
|
-
capScope: "system",
|
|
36848
|
-
addonId: null,
|
|
36849
|
-
access: "create"
|
|
36850
|
-
},
|
|
36851
36862
|
"metricsProvider.getAddonStats": {
|
|
36852
36863
|
capName: "metrics-provider",
|
|
36853
36864
|
capScope: "system",
|
|
@@ -11726,6 +11726,35 @@ var filesystemBrowseCapability = {
|
|
|
11726
11726
|
}
|
|
11727
11727
|
};
|
|
11728
11728
|
/**
|
|
11729
|
+
* Transport bounds for AI capability methods.
|
|
11730
|
+
*
|
|
11731
|
+
* Its own module because `llm.cap.ts` and `llm-runtime.cap.ts` already import
|
|
11732
|
+
* each other: declaring the constant in either one hands the other `undefined`
|
|
11733
|
+
* at module-init time, and an undefined `timeoutMs` silently falls back to the
|
|
11734
|
+
* kernel's 60 s default — the exact failure this constant exists to prevent,
|
|
11735
|
+
* reintroduced invisibly. Found by the guard, not by review.
|
|
11736
|
+
*/
|
|
11737
|
+
/**
|
|
11738
|
+
* Ceiling for a cap method that runs inference or loads a model.
|
|
11739
|
+
*
|
|
11740
|
+
* Deliberately far above anything the AI layer itself may wait for (a summary
|
|
11741
|
+
* asks 180 s by default, a rule may ask 600 s), because the TRANSPORT must
|
|
11742
|
+
* never be the layer that gives up first: when it does, the failure is
|
|
11743
|
+
* reported as a transport error for a model that was still thinking, naming
|
|
11744
|
+
* the wrong layer and hiding the real one.
|
|
11745
|
+
*
|
|
11746
|
+
* Measured 2026-09-03: a 6-image vision request needs 44.8 s warm and ~20 s
|
|
11747
|
+
* more on a cold model load. With no declaration every digest failed at
|
|
11748
|
+
* exactly 60 s and shipped without its text.
|
|
11749
|
+
*
|
|
11750
|
+
* A ceiling, not a budget. The AI layer's own timeouts (the rule's `timeoutMs`,
|
|
11751
|
+
* the profile's `timeoutMs` / `firstTokenTimeoutMs`) remain the things that
|
|
11752
|
+
* decide when to stop, because only they can say WHY.
|
|
11753
|
+
*/
|
|
11754
|
+
var AI_CAP_TRANSPORT_TIMEOUT_MS = 6e5;
|
|
11755
|
+
/** A multi-gigabyte download. An hour is not generous, it is honest. */
|
|
11756
|
+
var AI_MODEL_INSTALL_TIMEOUT_MS = 60 * 6e4;
|
|
11757
|
+
/**
|
|
11729
11758
|
* Shared LLM generate contracts — imported by BOTH `llm.cap.ts` (consumer
|
|
11730
11759
|
* surface) and `llm-runtime.cap.ts` (node-side managed executor) so the two
|
|
11731
11760
|
* caps stay wire-compatible without a circular cap→cap import.
|
|
@@ -12018,11 +12047,13 @@ var llmRuntimeCapability = {
|
|
|
12018
12047
|
timeoutMs: zod.z.number().int().positive().optional()
|
|
12019
12048
|
}), LlmGenerateResultSchema, {
|
|
12020
12049
|
kind: "mutation",
|
|
12021
|
-
auth: "admin"
|
|
12050
|
+
auth: "admin",
|
|
12051
|
+
timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
|
|
12022
12052
|
}),
|
|
12023
12053
|
ensureStarted: method(zod.z.object({ runtime: ManagedRuntimeConfigSchema }), LlmRuntimeStatusSchema, {
|
|
12024
12054
|
kind: "mutation",
|
|
12025
|
-
auth: "admin"
|
|
12055
|
+
auth: "admin",
|
|
12056
|
+
timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
|
|
12026
12057
|
}),
|
|
12027
12058
|
stop: method(zod.z.object({}), zod.z.void(), {
|
|
12028
12059
|
kind: "mutation",
|
|
@@ -12031,7 +12062,8 @@ var llmRuntimeCapability = {
|
|
|
12031
12062
|
status: method(zod.z.object({}), LlmRuntimeStatusSchema, { auth: "admin" }),
|
|
12032
12063
|
installModel: method(zod.z.object({ model: ManagedModelRefSchema }), zod.z.void(), {
|
|
12033
12064
|
kind: "mutation",
|
|
12034
|
-
auth: "admin"
|
|
12065
|
+
auth: "admin",
|
|
12066
|
+
timeoutMs: AI_MODEL_INSTALL_TIMEOUT_MS
|
|
12035
12067
|
}),
|
|
12036
12068
|
deleteModel: method(zod.z.object({ file: zod.z.string() }), zod.z.void(), {
|
|
12037
12069
|
kind: "mutation",
|
|
@@ -12213,8 +12245,14 @@ var llmCapability = {
|
|
|
12213
12245
|
/** `nodeId` inputs below are DATA (the hub provider pins itself), never routing. */
|
|
12214
12246
|
nodeIdMode: "data",
|
|
12215
12247
|
methods: {
|
|
12216
|
-
generate: method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, {
|
|
12217
|
-
|
|
12248
|
+
generate: method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, {
|
|
12249
|
+
kind: "mutation",
|
|
12250
|
+
timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
|
|
12251
|
+
}),
|
|
12252
|
+
generateVision: method(GenerateVisionInputSchema, LlmGenerateResultSchema, {
|
|
12253
|
+
kind: "mutation",
|
|
12254
|
+
timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
|
|
12255
|
+
}),
|
|
12218
12256
|
/**
|
|
12219
12257
|
* Stop a generation started with a `requestId`.
|
|
12220
12258
|
*
|
|
@@ -12238,7 +12276,8 @@ var llmCapability = {
|
|
|
12238
12276
|
}),
|
|
12239
12277
|
testProfile: method(ProfileRefInputSchema, LlmGenerateResultSchema, {
|
|
12240
12278
|
kind: "mutation",
|
|
12241
|
-
auth: "admin"
|
|
12279
|
+
auth: "admin",
|
|
12280
|
+
timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
|
|
12242
12281
|
}),
|
|
12243
12282
|
/** Live vendor enumeration (GET /models etc.). */
|
|
12244
12283
|
listModels: method(ProfileRefInputSchema, zod.z.array(zod.z.string())),
|
|
@@ -12803,17 +12842,6 @@ var ContainerMemoryPointSchema = zod.z.object({
|
|
|
12803
12842
|
*/
|
|
12804
12843
|
gpuShmemBytes: zod.z.number().nullable()
|
|
12805
12844
|
}).extend({ atMs: zod.z.number() });
|
|
12806
|
-
var DumpHeapSnapshotInputSchema = zod.z.object({
|
|
12807
|
-
/** The addon whose runner should dump a heap snapshot. */
|
|
12808
|
-
addonId: zod.z.string() });
|
|
12809
|
-
var DumpHeapSnapshotResultSchema = zod.z.object({
|
|
12810
|
-
success: zod.z.boolean(),
|
|
12811
|
-
/** Path of the written .heapsnapshot inside the runner's container/host. */
|
|
12812
|
-
path: zod.z.string().optional(),
|
|
12813
|
-
/** Process pid that was signalled. */
|
|
12814
|
-
pid: zod.z.number().optional(),
|
|
12815
|
-
reason: zod.z.string().optional()
|
|
12816
|
-
});
|
|
12817
12845
|
/**
|
|
12818
12846
|
* One point of one function's series.
|
|
12819
12847
|
*
|
|
@@ -13002,19 +13030,7 @@ var metricsProviderCapability = {
|
|
|
13002
13030
|
* agent's ring alone (`durable: false`). Empty is a legitimate answer: a
|
|
13003
13031
|
* node nobody has heard from has no series, and saying so is the truth.
|
|
13004
13032
|
*/
|
|
13005
|
-
getLoadSeries: method(GetLoadSeriesInputSchema, NodeLoadSeriesSchema)
|
|
13006
|
-
/**
|
|
13007
|
-
* Tell the addon's forked runner to write a V8 heap snapshot to disk (via
|
|
13008
|
-
* SIGUSR2 — the runner's diagnostic handler). Also logs its
|
|
13009
|
-
* `process.memoryUsage()` + heap-space breakdown. Resolves the pid from
|
|
13010
|
-
* `$process.list`, so it can only reach a runner this node spawned. Use
|
|
13011
|
-
* for deep per-addon memory attribution; copy the returned path off the
|
|
13012
|
-
* node to analyze.
|
|
13013
|
-
*/
|
|
13014
|
-
dumpHeapSnapshot: method(DumpHeapSnapshotInputSchema, DumpHeapSnapshotResultSchema, {
|
|
13015
|
-
kind: "mutation",
|
|
13016
|
-
auth: "admin"
|
|
13017
|
-
})
|
|
13033
|
+
getLoadSeries: method(GetLoadSeriesInputSchema, NodeLoadSeriesSchema)
|
|
13018
13034
|
}
|
|
13019
13035
|
};
|
|
13020
13036
|
var modelConvertCapability = {
|
|
@@ -17738,7 +17754,8 @@ var MediaFileKindEnum = zod.z.enum([
|
|
|
17738
17754
|
"plateCrop",
|
|
17739
17755
|
"keyFrame",
|
|
17740
17756
|
"keyFrameSmall",
|
|
17741
|
-
"thumbnailSmall"
|
|
17757
|
+
"thumbnailSmall",
|
|
17758
|
+
"sceneFrame"
|
|
17742
17759
|
]);
|
|
17743
17760
|
/**
|
|
17744
17761
|
* One media row ON THE WIRE: what it is, how big it is, and WHERE ITS BYTES
|
|
@@ -36842,12 +36859,6 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
36842
36859
|
addonId: null,
|
|
36843
36860
|
access: "view"
|
|
36844
36861
|
},
|
|
36845
|
-
"metricsProvider.dumpHeapSnapshot": {
|
|
36846
|
-
capName: "metrics-provider",
|
|
36847
|
-
capScope: "system",
|
|
36848
|
-
addonId: null,
|
|
36849
|
-
access: "create"
|
|
36850
|
-
},
|
|
36851
36862
|
"metricsProvider.getAddonStats": {
|
|
36852
36863
|
capName: "metrics-provider",
|
|
36853
36864
|
capScope: "system",
|
package/dist/index.d.ts
CHANGED
|
@@ -51,7 +51,7 @@ export { createEventPlaneMeter, createEventPlaneReader, diffEventPlane, EVENT_PL
|
|
|
51
51
|
export type { SocketPeerDelta, SocketPeerSample, SocketPlaneBaseline, SocketPlaneCounters, SocketPlaneMeter, SocketPlaneReader, SocketPlaneRegistry, SocketPlaneRegistryChild, SocketPlaneSources, SocketPlaneWindow, } from './kernel/socket-plane-report.js';
|
|
52
52
|
export { createSocketPlaneMeter, createSocketPlaneReader, diffSocketPlane, EMPTY_SOCKET_PLANE_BASELINE, formatSocketPlane, SOCKET_PLANE_TOP_N, } from './kernel/socket-plane-report.js';
|
|
53
53
|
export type { HeapDiagnosticDeps, HeapDiagnosticRequest, HeapSpaceReader, HeapSpaceUsage, } from './kernel/heap-spaces.js';
|
|
54
|
-
export { DECISIVE_HEAP_SPACES, emitHeapDiagnosticReport, formatHeapSpaces, HEAP_SPACE_REPORT_MIN_MB,
|
|
54
|
+
export { DECISIVE_HEAP_SPACES, emitHeapDiagnosticReport, formatHeapSpaces, HEAP_SPACE_REPORT_MIN_MB, heapSpaceField, readHeapSpaces, selectReportedSpaces, } from './kernel/heap-spaces.js';
|
|
55
55
|
export type { DeferredHeapWatchSink, HeapReclaimer, HeapReclaimOptions, HeapSample, HeapWatchProbes, HeapWatchSink, LoopDelayMeter, LoopDelaySample, RssBreakdown, RssBudgetOptions, RssBudgetState, RssGrowthShape, RunnerHeapWatchOptions, } from './kernel/heap-watch.js';
|
|
56
56
|
export { buildHeapSample, createDeferredHeapWatchSink, createLoopDelayMeter, createV8Reclaimer, HEAP_RECLAIM_MIN_INTERVAL_MS, HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, HEAP_RECLAIM_TRIGGER_MB, HEAP_WATCH_INTERVAL_MS, HEAP_WATCH_WARN_RATIO, HUB_MAIN_HEAP_WATCH_LABEL, HUB_MAIN_RSS_BUDGET_MB, HUB_RSS_BUDGET_ENV, hubMainRssBudget, describeRss, nextRssBudgetState, parseRssBudgetMb, reclaimIntervalMs, RSS_BUDGET_REANNOUNCE_MIN_MS, RSS_BUDGET_RELEASE_RATIO, RUNNER_HEAP_WATCH_INTERVAL_MS, RUNNER_RSS_BUDGET_ENV, shouldReclaim, startHeapWatch, startRunnerHeapWatch, strandedMb, ZERO_LOOP_DELAY, } from './kernel/heap-watch.js';
|
|
57
57
|
export type { AddonDataPlaneFacility, DataPlaneSink, } from './kernel/moleculer/addon-data-plane-facility.js';
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_chunk = require("./chunk-Cek0wNdY.js");
|
|
3
|
-
const require_dist = require("./dist-
|
|
3
|
+
const require_dist = require("./dist-DkVaJ5vG.js");
|
|
4
4
|
const require_builtins_alerts_alerts_addon = require("./builtins/alerts/alerts.addon.js");
|
|
5
5
|
require("./builtins/alerts/index.js");
|
|
6
6
|
const require_formatter = require("./formatter-DqAKDlvN.js");
|
|
@@ -27,7 +27,7 @@ require("./builtins/system-config/index.js");
|
|
|
27
27
|
const require_builtins_winston_logging_index = require("./builtins/winston-logging/index.js");
|
|
28
28
|
const require_file_data_plane = require("./file-data-plane-DO8KbxCe.js");
|
|
29
29
|
const require_tls$1 = require("./tls-BxQlomxd.js");
|
|
30
|
-
const require_manifest_system_deps = require("./manifest-system-deps-
|
|
30
|
+
const require_manifest_system_deps = require("./manifest-system-deps-BbB94ozU.js");
|
|
31
31
|
const require_resource_monitor = require("./resource-monitor-CdnzxBLP.js");
|
|
32
32
|
const require_custom_action_registry = require("./custom-action-registry-jY0NOZK8.js");
|
|
33
33
|
let zod = require("zod");
|
|
@@ -95354,7 +95354,6 @@ exports.QUARANTINE_DIRNAME = QUARANTINE_DIRNAME;
|
|
|
95354
95354
|
exports.RESTART_MARKER_FILE = RESTART_MARKER_FILE;
|
|
95355
95355
|
exports.RSS_BUDGET_REANNOUNCE_MIN_MS = require_manifest_system_deps.RSS_BUDGET_REANNOUNCE_MIN_MS;
|
|
95356
95356
|
exports.RSS_BUDGET_RELEASE_RATIO = require_manifest_system_deps.RSS_BUDGET_RELEASE_RATIO;
|
|
95357
|
-
exports.RUNNER_HEAP_SNAPSHOT_ENV = require_manifest_system_deps.RUNNER_HEAP_SNAPSHOT_ENV;
|
|
95358
95357
|
exports.RUNNER_HEAP_WATCH_INTERVAL_MS = require_manifest_system_deps.RUNNER_HEAP_WATCH_INTERVAL_MS;
|
|
95359
95358
|
exports.RUNNER_RSS_BUDGET_ENV = require_manifest_system_deps.RUNNER_RSS_BUDGET_ENV;
|
|
95360
95359
|
exports.RUNTIME_DEFAULTS = require_dist.RUNTIME_DEFAULTS;
|
|
@@ -95545,7 +95544,6 @@ exports.getSinglePidStats = require_resource_monitor.getSinglePidStats;
|
|
|
95545
95544
|
exports.getWorkerDeviceRegistry = require_manifest_system_deps.getWorkerDeviceRegistry;
|
|
95546
95545
|
exports.hasDotNode = hasDotNode;
|
|
95547
95546
|
exports.hashClusterSecret = hashClusterSecret;
|
|
95548
|
-
exports.heapSnapshotAuthorised = require_manifest_system_deps.heapSnapshotAuthorised;
|
|
95549
95547
|
exports.heapSpaceField = require_manifest_system_deps.heapSpaceField;
|
|
95550
95548
|
exports.hubMainRssBudget = require_manifest_system_deps.hubMainRssBudget;
|
|
95551
95549
|
exports.installManifestNativeDeps = require_manifest_system_deps.installManifestNativeDeps;
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as __toCommonJS, i as __require, n as __esmMin, o as __toESM$1, r as __exportAll, t as __commonJSMin$1 } from "./chunk-CNf5ZN-e.mjs";
|
|
2
|
-
import { $ as isArrayOutputSchema, D as addonSettingsCapability, Ft as DATAPLANE_SECRET_HEADER$1, Gt as asNumber, Ht as ReadinessTimeoutError, It as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Jt as emitDownForOwnedCaps, Kt as asString$1, Lt as DEVICE_STATUS_METHOD, Nt as errMsg$1, St as scopesAllowDeviceCap, Vt as ReadinessRegistry, Wt as asJsonObject$1, X as extractNestedAddonId, Xt as expandCapMethods, at as kebabToCamel, en as parseJsonObject, et as isCollectionArrayMethod, g as RUNTIME_DEFAULTS, gt as procedureAuthKey, in as scopeKey, it as isVoidInput, lt as logLevelAtMost, m as METHOD_ACCESS_MAP, nn as readinessKey, on as EventCategory$1, ot as lifecycleJobSchema, p as LOG_LEVEL_RANK, pt as objectInputDeclaresAddonId, qt as createEvent, rn as resolveCapMount, t as ALL_CAPABILITY_DEFINITIONS, tn as parseJsonUnknown, tt as isObjectInput, ut as looseSchema, xt as scopesAllowAddon, yt as resolveMethodAuth } from "./dist-
|
|
2
|
+
import { $ as isArrayOutputSchema, D as addonSettingsCapability, Ft as DATAPLANE_SECRET_HEADER$1, Gt as asNumber, Ht as ReadinessTimeoutError, It as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Jt as emitDownForOwnedCaps, Kt as asString$1, Lt as DEVICE_STATUS_METHOD, Nt as errMsg$1, St as scopesAllowDeviceCap, Vt as ReadinessRegistry, Wt as asJsonObject$1, X as extractNestedAddonId, Xt as expandCapMethods, at as kebabToCamel, en as parseJsonObject, et as isCollectionArrayMethod, g as RUNTIME_DEFAULTS, gt as procedureAuthKey, in as scopeKey, it as isVoidInput, lt as logLevelAtMost, m as METHOD_ACCESS_MAP, nn as readinessKey, on as EventCategory$1, ot as lifecycleJobSchema, p as LOG_LEVEL_RANK, pt as objectInputDeclaresAddonId, qt as createEvent, rn as resolveCapMount, t as ALL_CAPABILITY_DEFINITIONS, tn as parseJsonUnknown, tt as isObjectInput, ut as looseSchema, xt as scopesAllowAddon, yt as resolveMethodAuth } from "./dist-C-8k9Z9W.mjs";
|
|
3
3
|
import { AlertCenterAddon } from "./builtins/alerts/alerts.addon.mjs";
|
|
4
4
|
import "./builtins/alerts/index.mjs";
|
|
5
5
|
import { t as formatLogLine } from "./formatter-B7qW8bPJ.mjs";
|
|
@@ -26,7 +26,7 @@ import "./builtins/system-config/index.mjs";
|
|
|
26
26
|
import { WinstonDestination, WinstonLoggingAddon } from "./builtins/winston-logging/index.mjs";
|
|
27
27
|
import { a as parseTokenizedUrl, c as collectModelFiles, d as downloadModel, f as ensureModel, h as isModelDownloaded, i as parseRangeHeader, l as deleteModelFromDisk, m as getModelFilePath, n as contentTypeFor, o as resolveFilePath, p as fetchJson, r as createAuthenticatedFileServer, s as ModelDownloadService, t as createFileDataPlaneHandler, u as downloadFile } from "./file-data-plane-BhKdxJgf.mjs";
|
|
28
28
|
import { C as registerLanHttpHandler, S as readLanHttpState, _ as DEFAULT_LAN_HTTP_PORT, a as writeTlsMode, b as bindPendingLanHttp, c as loadTlsCert, d as collectCertIdentity, f as CA_VALIDITY_DAYS, g as evaluateExistingCert, h as SERVER_AUTH_OID, i as writeExtraSans, l as reissueTlsLeaf, m as MAX_LEAF_VALIDITY_DAYS, n as readTlsAccessStatus, o as validateUploadedTls, p as LEAF_RENEWAL_WINDOW_DAYS, r as readTlsMode, s as ensureTlsCert, t as readExtraSans, u as CA_COMMON_NAME, v as allFamiliesListenHost, x as closeLanHttp, y as applyLanHttp } from "./tls-DOTmtLCW.mjs";
|
|
29
|
-
import { $ as buildUdsNativeCapProxy, $t as
|
|
29
|
+
import { $ as buildUdsNativeCapProxy, $t as formatHeapSpaces, A as createUdsLoggerWithControl, At as HUB_MAIN_RSS_BUDGET_MB, B as readMoleculerFanoutMode, Bt as createV8Reclaimer, C as ipcParentLink, Ct as createAddonDataPlaneFacility, D as createUdsEventBus, Dt as HEAP_WATCH_INTERVAL_MS, E as createUdsEventBridge, Et as HEAP_RECLAIM_TRIGGER_MB, F as AGENT_CAP_FWD_SERVICE, Ft as RUNNER_RSS_BUDGET_ENV, G as createLocalTransport, Gt as reclaimIntervalMs, H as PARENT_ROUTED_PROVIDER_ADDON_ID, Ht as hubMainRssBudget, I as CapRouteResolver, It as ZERO_LOOP_DELAY, J as SocketChannel, Jt as startRunnerHeapWatch, K as UdsLocalTransportClient, Kt as shouldReclaim, L as CapRouteError, Lt as buildHeapSample, M as LocalChildRegistry, Mt as RSS_BUDGET_REANNOUNCE_MIN_MS, N as UDS_NO_ROUTE_PREFIX, Nt as RSS_BUDGET_RELEASE_RATIO, O as udsChildLogToWorkerEntry, Ot as HEAP_WATCH_WARN_RATIO, P as AGENT_CAP_FWD_ACTION, Pt as RUNNER_HEAP_WATCH_INTERVAL_MS, Q as buildNativeCapProxy, Qt as emitHeapDiagnosticReport, R as classifyCapRoute, Rt as createDeferredHeapWatchSink, S as buildLinkChain, St as runNpm, T as createParentUnownedCallHandler, Tt as HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, U as __resetCapUsageRegistryForTests, Ut as nextRssBudgetState, V as CapUsageRegistry, Vt as describeRss, W as getCapUsageRegistry, Wt as parseRssBudgetMb, X as FrameDecoder, Xt as DECISIVE_HEAP_SPACES, Y as localEndpointPath, Yt as strandedMb, Z as encodeFrame, Zt as HEAP_SPACE_REPORT_MIN_MB, _ as AddonDepsManager, _n as createEventPlaneReader, _t as CapabilityUnavailableError, a as createUdsAddonContext, an as createSocketPlaneMeter, at as createAddonService, b as brokerCallForCap, bt as resolveAddonClass, c as getOrInitReadinessRegistryForClient, cn as formatSocketPlane, ct as capActionName, d as clusterEventTopic, dn as recordSocketFrame, dt as capServiceName, en as heapSpaceField, et as createBrokerDeviceManagerApi, f as getBrokerEventBus, fn as sampleSocketDirection, ft as parseCapAction, g as subscribePassthrough, gn as createEventPlaneMeter, gt as CapabilityHandle, h as setNodeEventInterest, hn as EVENT_PLANE_TOP_N, ht as DeviceRegistry, i as createAddonContext, in as SOCKET_PLANE_TOP_N, j as LocalChildClient, jt as HUB_RSS_BUDGET_ENV, k as createUdsLogger, kt as HUB_MAIN_HEAP_WATCH_LABEL, l as setHubConnected, ln as EMPTY_SOCKET_DIRECTION, lt as capActionSuffix, m as registerEventBusService, mn as socketDirectionMessages, mt as serializeTypedArrays, n as installManifestPythonDeps, nn as selectReportedSpaces, o as getWorkerDeviceRegistry, on as createSocketPlaneReader, ot as validateProviderRegistrations, p as getMoleculerEventStats, pn as socketDirectionBytes, pt as deserializeTypedArrays, q as UdsLocalTransportServer, qt as startHeapWatch, r as adaptBrokerToCluster, rn as EMPTY_SOCKET_PLANE_BASELINE, rt as mountNativeCapService, s as getOrInitReadinessRegistry, sn as diffSocketPlane, st as NATIVE_PROVIDER_SERVICE_INFIX, t as installManifestSystemDeps, tn as readHeapSpaces, u as EVENT_TOPIC_PREFIX, un as createSocketDirectionCounters, ut as capBareAction, v as createKernelHwAccel, vn as diffEventPlane, vt as copyBundledNativeModules, w as localProviderLink, wt as HEAP_RECLAIM_MIN_INTERVAL_MS, x as brokerTransportLink, xt as resolveNpmInvocation, y as resolveHwAccel, yn as formatEventPlane, yt as installManifestNativeDeps, z as callWithServiceDiscovery, zt as createLoopDelayMeter } from "./manifest-system-deps-4NeY_8iQ.mjs";
|
|
30
30
|
import { n as getSinglePidStats, t as getPidStats } from "./resource-monitor-BWmQ5i-o.mjs";
|
|
31
31
|
import { t as CustomActionRegistry } from "./custom-action-registry-F__gp_VX.mjs";
|
|
32
32
|
import { z } from "zod";
|
|
@@ -95238,4 +95238,4 @@ var LifecycleJobEngine = class {
|
|
|
95238
95238
|
}
|
|
95239
95239
|
};
|
|
95240
95240
|
//#endregion
|
|
95241
|
-
export { AGENT_CAP_FWD_ACTION, AGENT_CAP_FWD_SERVICE, AGENT_READINESS_SERVICE_NAME, ALL_CAPABILITY_DEFINITIONS, AddonApiFactory, AddonDepsManager, AddonEngineManager, AddonHealthMonitor, AddonInstaller, AddonLoader, AddonManifest, AddonRouteRegistry, AlertCenterAddon, ApiKeyManager, AuthManager, CA_COMMON_NAME, CA_VALIDITY_DAYS, CLUSTER_SECRET_MISMATCH_TYPE, CLUSTER_SECRET_REJECTED_EXIT_CODE, CORE_CAP_SERVICE_NAME, CapRouteError, CapRouteResolver, CapUsageRegistry, CapabilityHandle, CapabilityRegistry, CapabilityUnavailableError, ConfigManager, ConfigStore, ConsoleDestination, ConsoleLoggingAddon, CoreBlocksAddon, CustomActionRegistry, DECISIVE_HEAP_SPACES, DEFAULT_DATA_PATH, DEFAULT_LAN_HTTP_PORT, DEFAULT_LOG_LEVEL, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATUS_METHOD, DataPlaneRegistry, DeviceManagerAddon, DeviceRegistry, DeviceStore, EMPTY_SOCKET_DIRECTION, EMPTY_SOCKET_PLANE_BASELINE, EVENT_PLANE_TOP_N, EVENT_TOPIC_PREFIX, EngineManagerResolver, EventBus, FeatureManager, FilesystemStorageAddon, FilesystemStorageProvider, FrameDecoder, FsStorageBackend, HEALTH_MONITOR_GRACE_PERIOD_MS, HEALTH_MONITOR_RETRY_INTERVALS_MS, HEALTH_MONITOR_TICK_MS, HEAP_RECLAIM_MIN_INTERVAL_MS, HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, HEAP_RECLAIM_TRIGGER_MB, HEAP_SPACE_REPORT_MIN_MB, HEAP_WATCH_INTERVAL_MS, HEAP_WATCH_WARN_RATIO, HUB_CAP_FWD_ACTION, HUB_CAP_FWD_SERVICE, HUB_MAIN_HEAP_WATCH_LABEL, HUB_MAIN_RSS_BUDGET_MB, HUB_RSS_BUDGET_ENV, HubForwarderAddon, HubForwarderDestination, HubLogForwarder, HubNodeRegistry, INFRA_CAPABILITIES, IntegrationRegistry, JobJournal, LEAF_RENEWAL_WINDOW_DAYS, LifecycleJobEngine, LifecycleStateMachine, LivenessMonitorAddon, LocalAuthAddon, LocalChildClient, LocalChildRegistry, LogManager, LogRingBuffer, LoggingGate, LokiDestination, LokiLoggingAddon, MAX_LEAF_VALIDITY_DAYS, METHOD_ACCESS_MAP, ModelDownloadService, NATIVE_PROVIDER_SERVICE_INFIX, NATIVE_SCAN_DEPTH, NativeMetricsAddon, NativeMetricsProvider, NetworkQualityTracker, NotificationService, PARENT_ROUTED_PROVIDER_ADDON_ID, PYTHON_VERSION, PipelineRunner, PipelineValidator, PythonEnvManager, QUARANTINE_DIRNAME, RESTART_MARKER_FILE, RSS_BUDGET_REANNOUNCE_MIN_MS, RSS_BUDGET_RELEASE_RATIO,
|
|
95241
|
+
export { AGENT_CAP_FWD_ACTION, AGENT_CAP_FWD_SERVICE, AGENT_READINESS_SERVICE_NAME, ALL_CAPABILITY_DEFINITIONS, AddonApiFactory, AddonDepsManager, AddonEngineManager, AddonHealthMonitor, AddonInstaller, AddonLoader, AddonManifest, AddonRouteRegistry, AlertCenterAddon, ApiKeyManager, AuthManager, CA_COMMON_NAME, CA_VALIDITY_DAYS, CLUSTER_SECRET_MISMATCH_TYPE, CLUSTER_SECRET_REJECTED_EXIT_CODE, CORE_CAP_SERVICE_NAME, CapRouteError, CapRouteResolver, CapUsageRegistry, CapabilityHandle, CapabilityRegistry, CapabilityUnavailableError, ConfigManager, ConfigStore, ConsoleDestination, ConsoleLoggingAddon, CoreBlocksAddon, CustomActionRegistry, DECISIVE_HEAP_SPACES, DEFAULT_DATA_PATH, DEFAULT_LAN_HTTP_PORT, DEFAULT_LOG_LEVEL, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATUS_METHOD, DataPlaneRegistry, DeviceManagerAddon, DeviceRegistry, DeviceStore, EMPTY_SOCKET_DIRECTION, EMPTY_SOCKET_PLANE_BASELINE, EVENT_PLANE_TOP_N, EVENT_TOPIC_PREFIX, EngineManagerResolver, EventBus, FeatureManager, FilesystemStorageAddon, FilesystemStorageProvider, FrameDecoder, FsStorageBackend, HEALTH_MONITOR_GRACE_PERIOD_MS, HEALTH_MONITOR_RETRY_INTERVALS_MS, HEALTH_MONITOR_TICK_MS, HEAP_RECLAIM_MIN_INTERVAL_MS, HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, HEAP_RECLAIM_TRIGGER_MB, HEAP_SPACE_REPORT_MIN_MB, HEAP_WATCH_INTERVAL_MS, HEAP_WATCH_WARN_RATIO, HUB_CAP_FWD_ACTION, HUB_CAP_FWD_SERVICE, HUB_MAIN_HEAP_WATCH_LABEL, HUB_MAIN_RSS_BUDGET_MB, HUB_RSS_BUDGET_ENV, HubForwarderAddon, HubForwarderDestination, HubLogForwarder, HubNodeRegistry, INFRA_CAPABILITIES, IntegrationRegistry, JobJournal, LEAF_RENEWAL_WINDOW_DAYS, LifecycleJobEngine, LifecycleStateMachine, LivenessMonitorAddon, LocalAuthAddon, LocalChildClient, LocalChildRegistry, LogManager, LogRingBuffer, LoggingGate, LokiDestination, LokiLoggingAddon, MAX_LEAF_VALIDITY_DAYS, METHOD_ACCESS_MAP, ModelDownloadService, NATIVE_PROVIDER_SERVICE_INFIX, NATIVE_SCAN_DEPTH, NativeMetricsAddon, NativeMetricsProvider, NetworkQualityTracker, NotificationService, PARENT_ROUTED_PROVIDER_ADDON_ID, PYTHON_VERSION, PipelineRunner, PipelineValidator, PythonEnvManager, QUARANTINE_DIRNAME, RESTART_MARKER_FILE, RSS_BUDGET_REANNOUNCE_MIN_MS, RSS_BUDGET_RELEASE_RATIO, RUNNER_HEAP_WATCH_INTERVAL_MS, RUNNER_RSS_BUDGET_ENV, RUNTIME_DEFAULTS, ReadinessRegistry, ReadinessTimeoutError, ReplEngine, RingBuffer, SERVER_AUTH_OID, SOCKET_PLANE_TOP_N, ScopedLogger, ScopedTokenManager, SocketChannel, SqliteSettingsAddon, SqliteSettingsBackend, StagingArea, StorageLocationManager, StorageManager, StorageOrchestratorAddon, StorageOrchestratorService, SystemConfigAddon, SystemEventBus, TRADITIONAL_NATIVE_PACKAGES, ToastService, UDS_NO_ROUTE_PREFIX, UdsLocalTransportClient, UdsLocalTransportServer, UserManager, WinstonDestination, WinstonLoggingAddon, ZERO_LOOP_DELAY, __resetCapUsageRegistryForTests, __resetLoggingGateForTests, adaptBrokerToCluster, addonSettingsCapability, allFamiliesListenHost, applyLanHttp, bindPendingLanHttp, bootstrapSchema, brokerCallForCap, brokerTransportLink, buildBinaryPath, buildCapRouters, buildHeapSample, buildLinkChain, buildNativeCapProxy, buildNodeManifest, buildStorageLocationRegistry, buildUdsNativeCapProxy, builderMountedCapNames, callRegisterNodeWithRetry, callWithServiceDiscovery, canServeDataPlane, capActionName, capActionSuffix, capBareAction, capServiceName, classifyAddonDir, classifyCapRoute, clearPendingRestart, closeLanHttp, clusterEventTopic, clusterSecretMatches, collectCertIdentity, collectModelFiles, contentTypeFor, copyDirRecursive, copyExtraFileDirs, createAddonContext, createAddonDataPlaneFacility, createAddonService, createAuthenticatedFileServer, createBroker, createBrokerDeviceManagerApi, createCoreCapService, createDeferredHeapWatchSink, createDoorSettingsView, createEventPlaneMeter, createEventPlaneReader, createFileDataPlaneHandler, createHubCapForwardService, createHubService, createKernelHwAccel, createLocalTransport, createLoopDelayMeter, createParentUnownedCallHandler, createProcessService, createReadinessService, createReadinessServiceForRegistry, createScopedProcessManager, createSocketDirectionCounters, createSocketPlaneMeter, createSocketPlaneReader, createStreamProbeBrokerService, createUdsAddonContext, createUdsEventBridge, createUdsEventBus, createUdsLogger, createUdsLoggerWithControl, createV8Reclaimer, deleteModelFromDisk, deriveAgentListenPort, describeProviderKindDrift, describeRss, detectWorkspacePackagesDir, diffEventPlane, diffSocketPlane, downloadBinary, downloadFile, downloadModel, emitDownForOwnedCaps, emitHeapDiagnosticReport, encodeFrame, ensureAddonNativePrebuilds, ensureBinary, ensureDir, ensureFfmpeg, ensureLibraryBuilt, ensureModel, ensureNativePrebuilds, ensurePython, ensureTlsCert, evaluateExistingCert, expandCapMethods, fetchJson, findInPath, formatEventPlane, formatHeapSpaces, formatLogLine, formatSocketPlane, getBrokerEventBus, getCapUsageRegistry, getFfmpegDownloadUrl, getLoggingGate, getModelFilePath, getMoleculerEventStats, getOrInitReadinessRegistry, getOrInitReadinessRegistryForClient, getPidStats, getPlatformInfo, getPythonDownloadUrl, getRestartMarkerPath, getSinglePidStats, getWorkerDeviceRegistry, hasDotNode, hashClusterSecret, heapSpaceField, hubMainRssBudget, installManifestNativeDeps, installManifestPythonDeps, installManifestSystemDeps, installPackageFromNpm, installPythonPackages, installPythonRequirements, ipcParentLink, isAddonDeploySource, isArrayOutputSchema, isClusterSecretMismatchError, isCollectionArrayMethod, isInfraCapability, isModelDownloaded, isSourceNewer, isolatedBuiltinPhase, loadTlsCert, localEndpointPath, localProviderLink, mountNativeCapService, nextRssBudgetState, parseCapAction, parseRangeHeader, parseRssBudgetMb, parseTokenizedUrl, partitionIsolatedBuiltinIds, proxyToUpstream, quarantineAddonResidue, readExtraSans, readHeapSpaces, readLanHttpState, readMoleculerFanoutMode, readPendingRestart, readTlsAccessStatus, readTlsMode, readinessKey, reclaimIntervalMs, recordSocketFrame, registerEventBusService, registerLanHttpHandler, reissueTlsLeaf, resolveFilePath, resolveHwAccel, resolveNpmInvocation, runHubAddonBoot, runNpm, sampleSocketDirection, scheduleSelfRestart, scopeKey, scopesAllowAddon, scopesAllowDeviceCap, selectAddonResidue, selectReportedSpaces, serializeTypedArrays, setHubConnected, setNodeEventInterest, shouldReclaim, socketDirectionBytes, socketDirectionMessages, startHeapWatch, startRunnerHeapWatch, strandedMb, stripCamstackDeps, subscribePassthrough, udsChildLogToWorkerEntry, validateProviderRegistrations, validateUploadedTls, waitUntilReady, writeExtraSans, writePendingRestart, writeTlsMode };
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WHERE the bytes come from, without stopping the process.
|
|
3
|
+
*
|
|
4
|
+
* A heap SNAPSHOT answers "what is retained" and costs a stop-the-world walk
|
|
5
|
+
* plus a multi-gigabyte write. On this hub that took the machine down twice;
|
|
6
|
+
* the second attempt did not even finish — it left a 0-byte file and an
|
|
7
|
+
* unresponsive host that had to be rebooted. The remotely-triggerable command
|
|
8
|
+
* is gone (`scripts/check-no-heap-dump-command.ts`).
|
|
9
|
+
*
|
|
10
|
+
* V8's SAMPLING heap profiler answers a cheaper, different question: which
|
|
11
|
+
* allocation SITES the bytes came from, statistically, with no pause and
|
|
12
|
+
* nothing written. Measured locally: 51 ms for a window that allocated 200 000
|
|
13
|
+
* objects.
|
|
14
|
+
*
|
|
15
|
+
* ## What this is NOT
|
|
16
|
+
*
|
|
17
|
+
* It is not retention analysis. It says where bytes were BORN, not what is
|
|
18
|
+
* holding them alive, and a leak is about the second. It is still the right
|
|
19
|
+
* first instrument for the recorder's ~900 MB of large objects that "no
|
|
20
|
+
* allocation site in its tree can produce" — because naming the sites is
|
|
21
|
+
* exactly the claim under test, and if the sites turn out to be ordinary, the
|
|
22
|
+
* retention question is the one that survives.
|
|
23
|
+
*
|
|
24
|
+
* This module is the PURE half: it folds the profile V8 hands back. The
|
|
25
|
+
* sampling belongs to the caller, so the fold is testable without a profiler.
|
|
26
|
+
*/
|
|
27
|
+
/** One frame as the inspector protocol reports it. */
|
|
28
|
+
export interface AllocationCallFrame {
|
|
29
|
+
readonly functionName: string;
|
|
30
|
+
readonly url: string;
|
|
31
|
+
readonly lineNumber: number;
|
|
32
|
+
}
|
|
33
|
+
/** One node of `HeapProfiler.stopSampling`'s profile tree. */
|
|
34
|
+
export interface AllocationProfileNode {
|
|
35
|
+
readonly selfSize: number;
|
|
36
|
+
readonly callFrame: AllocationCallFrame;
|
|
37
|
+
readonly children?: readonly AllocationProfileNode[];
|
|
38
|
+
}
|
|
39
|
+
export interface AllocationSite {
|
|
40
|
+
readonly functionName: string;
|
|
41
|
+
/** `file.js:line` — what a human reads in a log line. */
|
|
42
|
+
readonly site: string;
|
|
43
|
+
readonly bytes: number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Fold the tree into the biggest allocation sites.
|
|
47
|
+
*
|
|
48
|
+
* Sites are SUMMED across call paths: one site reached from two callers is one
|
|
49
|
+
* site, and reporting it twice at half the size is how a dominant allocator
|
|
50
|
+
* hides in a long tail. Identity is (function, url, line) — the same line of
|
|
51
|
+
* two files is two sites.
|
|
52
|
+
*/
|
|
53
|
+
export declare function summariseAllocationProfile(head: AllocationProfileNode, limit: number): readonly AllocationSite[];
|
|
54
|
+
/**
|
|
55
|
+
* The inspector session slice this needs. Injected so the sampler is testable
|
|
56
|
+
* without an inspector, and so nothing here reaches for a global.
|
|
57
|
+
*/
|
|
58
|
+
export interface HeapProfilerSession {
|
|
59
|
+
connect: () => void;
|
|
60
|
+
disconnect: () => void;
|
|
61
|
+
post: (method: string, paramsOrCb: unknown, maybeCb?: unknown) => void;
|
|
62
|
+
}
|
|
63
|
+
export interface SampleHeapAllocationsInput {
|
|
64
|
+
readonly session: HeapProfilerSession;
|
|
65
|
+
/** How long to sample. Bounded by the caller; this module never loops. */
|
|
66
|
+
readonly durationMs: number;
|
|
67
|
+
readonly limit: number;
|
|
68
|
+
readonly wait: (ms: number) => Promise<void>;
|
|
69
|
+
/** Bytes between samples. Larger = cheaper and coarser. */
|
|
70
|
+
readonly samplingInterval?: number;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Sample allocations for a bounded window and answer with the top sites.
|
|
74
|
+
*
|
|
75
|
+
* Writes NOTHING and pauses nothing. The profiler is stopped and the session
|
|
76
|
+
* disconnected in a `finally`, because a sampler left running is a tax on the
|
|
77
|
+
* process that outlives whoever enabled it — and the failure that made this
|
|
78
|
+
* module necessary was a diagnostic nobody could turn off from outside.
|
|
79
|
+
*/
|
|
80
|
+
export declare function sampleHeapAllocations(input: SampleHeapAllocationsInput): Promise<readonly AllocationSite[]>;
|
|
81
|
+
/**
|
|
82
|
+
* Per-runner opt-in for allocation sampling.
|
|
83
|
+
*
|
|
84
|
+
* Explicit `'on'` only — the same discipline the snapshot flag had. The
|
|
85
|
+
* DIFFERENCE is what it authorises: that flag allowed a stop-the-world walk and
|
|
86
|
+
* a multi-gigabyte write, so leaving it on in production (which is exactly what
|
|
87
|
+
* happened) was an outage waiting for a signal. This one allows ~50 ms of
|
|
88
|
+
* statistical sampling and one log line, so a runner left with it on is simply
|
|
89
|
+
* a runner that reports where its bytes come from.
|
|
90
|
+
*/
|
|
91
|
+
export declare const RUNNER_ALLOC_SAMPLE_ENV = "CAMSTACK_RUNNER_ALLOC_SAMPLE";
|
|
92
|
+
export declare function allocationSamplingEnabled(env?: NodeJS.ProcessEnv): boolean;
|
|
93
|
+
/** Sample on every Nth heartbeat — one sample per ~10 minutes at a 60 s beat. */
|
|
94
|
+
export declare const ALLOCATION_SAMPLE_EVERY_N_BEATS = 10;
|
|
95
|
+
/** How long one sample runs. Short enough that two can never overlap. */
|
|
96
|
+
export declare const ALLOCATION_SAMPLE_WINDOW_MS = 5000;
|
|
97
|
+
/** How many sites one log line carries. */
|
|
98
|
+
export declare const ALLOCATION_SAMPLE_TOP_N = 8;
|
|
99
|
+
/**
|
|
100
|
+
* Is this the beat that samples?
|
|
101
|
+
*
|
|
102
|
+
* Beat 0 never samples: a runner that has just booted has allocated nothing
|
|
103
|
+
* worth ranking. A non-positive cadence samples NEVER rather than always — a
|
|
104
|
+
* misconfigured `0` must not turn a diagnostic into a permanent load, which is
|
|
105
|
+
* the failure mode this whole module exists because of.
|
|
106
|
+
*/
|
|
107
|
+
export declare function shouldSampleAllocations(beat: number, everyN: number): boolean;
|
|
@@ -97,7 +97,6 @@ export declare function formatHeapSpaces(spaces: readonly HeapSpaceUsage[], minM
|
|
|
97
97
|
* seconds. The per-space breakdown is ~1.2 µs and changes nothing. Welding them
|
|
98
98
|
* to one signal priced the free answer at the cost of the expensive one.
|
|
99
99
|
*/
|
|
100
|
-
export declare const RUNNER_HEAP_SNAPSHOT_ENV = "CAMSTACK_RUNNER_HEAP_SNAPSHOT";
|
|
101
100
|
/**
|
|
102
101
|
* Whether the operator has authorised the snapshot half of SIGUSR2.
|
|
103
102
|
*
|
|
@@ -105,26 +104,22 @@ export declare const RUNNER_HEAP_SNAPSHOT_ENV = "CAMSTACK_RUNNER_HEAP_SNAPSHOT";
|
|
|
105
104
|
* authorisation: a multi-GB stop-the-world write must never be reachable by a
|
|
106
105
|
* value someone set for a different purpose.
|
|
107
106
|
*/
|
|
108
|
-
export declare function heapSnapshotAuthorised(env?: NodeJS.ProcessEnv): boolean;
|
|
109
107
|
/** What a diagnostic report is ABOUT. */
|
|
110
108
|
export interface HeapDiagnosticRequest {
|
|
111
109
|
/** The runner's nodeId, so the line groups with its `[mem]` heartbeat. */
|
|
112
110
|
readonly label: string;
|
|
113
111
|
readonly addons: readonly string[];
|
|
114
112
|
readonly sink: HeapWatchSink;
|
|
115
|
-
/** Where a snapshot would be written, if one is authorised. */
|
|
116
|
-
readonly snapshotPath: string;
|
|
117
113
|
}
|
|
118
114
|
/** Everything the report READS. Injected so the split itself is testable. */
|
|
119
115
|
export interface HeapDiagnosticDeps {
|
|
120
116
|
readonly readMemory: () => NodeJS.MemoryUsage;
|
|
121
117
|
readonly readSpaces: HeapSpaceReader;
|
|
122
|
-
readonly writeSnapshot: (path: string) => void;
|
|
123
118
|
readonly env: NodeJS.ProcessEnv;
|
|
124
119
|
}
|
|
125
120
|
/**
|
|
126
121
|
* The SIGUSR2 report — memory + the FULL per-space breakdown, always; the
|
|
127
|
-
* snapshot
|
|
122
|
+
* snapshot NEVER — see the note in the body.
|
|
128
123
|
*
|
|
129
124
|
* The breakdown here keeps every non-empty space at 0.1 MB, unlike the
|
|
130
125
|
* heartbeat's filtered whole-MB pair: this is a hand-fired diagnostic read once
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "./dist-
|
|
1
|
+
import "./dist-C-8k9Z9W.mjs";
|
|
2
2
|
import "./hub-cap-forward-BdT320dq.mjs";
|
|
3
3
|
import * as crypto$1 from "node:crypto";
|
|
4
4
|
import { randomBytes, randomUUID } from "node:crypto";
|
|
@@ -576,37 +576,14 @@ function formatHeapSpaces(spaces, minMb = 32) {
|
|
|
576
576
|
if (selected.length === 0) return "";
|
|
577
577
|
return ` ${selected.map((s) => `${heapSpaceField(s.name)}=${mb(s.usedBytes)}MB`).join(" ")}`;
|
|
578
578
|
}
|
|
579
|
-
/**
|
|
580
|
-
* Env var that authorises a heap snapshot on SIGUSR2.
|
|
581
|
-
*
|
|
582
|
-
* A snapshot is an admin mutation on a production hub: `writeHeapSnapshot`
|
|
583
|
-
* streams a file the size of the heap to `/tmp` and stops the world while it
|
|
584
|
-
* walks it — on the recorder that is a multi-GB file and a stall measured in
|
|
585
|
-
* seconds. The per-space breakdown is ~1.2 µs and changes nothing. Welding them
|
|
586
|
-
* to one signal priced the free answer at the cost of the expensive one.
|
|
587
|
-
*/
|
|
588
|
-
var RUNNER_HEAP_SNAPSHOT_ENV = "CAMSTACK_RUNNER_HEAP_SNAPSHOT";
|
|
589
|
-
/**
|
|
590
|
-
* Whether the operator has authorised the snapshot half of SIGUSR2.
|
|
591
|
-
*
|
|
592
|
-
* Explicit `'on'` only. Anything else — unset, empty, `'true'`, `'1'` — is NOT
|
|
593
|
-
* authorisation: a multi-GB stop-the-world write must never be reachable by a
|
|
594
|
-
* value someone set for a different purpose.
|
|
595
|
-
*/
|
|
596
|
-
function heapSnapshotAuthorised(env = process.env) {
|
|
597
|
-
return env[RUNNER_HEAP_SNAPSHOT_ENV] === "on";
|
|
598
|
-
}
|
|
599
579
|
var defaultDeps = {
|
|
600
580
|
readMemory: () => process.memoryUsage(),
|
|
601
581
|
readSpaces: readHeapSpaces,
|
|
602
|
-
writeSnapshot: (path) => {
|
|
603
|
-
v8.writeHeapSnapshot(path);
|
|
604
|
-
},
|
|
605
582
|
env: process.env
|
|
606
583
|
};
|
|
607
584
|
/**
|
|
608
585
|
* The SIGUSR2 report — memory + the FULL per-space breakdown, always; the
|
|
609
|
-
* snapshot
|
|
586
|
+
* snapshot NEVER — see the note in the body.
|
|
610
587
|
*
|
|
611
588
|
* The breakdown here keeps every non-empty space at 0.1 MB, unlike the
|
|
612
589
|
* heartbeat's filtered whole-MB pair: this is a hand-fired diagnostic read once
|
|
@@ -625,16 +602,6 @@ function emitHeapDiagnosticReport(request, deps = defaultDeps) {
|
|
|
625
602
|
} catch (error) {
|
|
626
603
|
request.sink.warn(`[mem] node="${request.label}" space report failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
627
604
|
}
|
|
628
|
-
if (!heapSnapshotAuthorised(deps.env)) {
|
|
629
|
-
request.sink.info(`[mem] node="${request.label}" heap snapshot NOT taken — it is an admin mutation (a multi-GB write and a stop-the-world walk of the heap). The per-space breakdown above is the free half and needs no authorisation. Set ${RUNNER_HEAP_SNAPSHOT_ENV}=on for this runner and signal again to take one.`);
|
|
630
|
-
return;
|
|
631
|
-
}
|
|
632
|
-
try {
|
|
633
|
-
deps.writeSnapshot(request.snapshotPath);
|
|
634
|
-
request.sink.info(`[mem] node="${request.label}" heap snapshot written -> ${request.snapshotPath}`);
|
|
635
|
-
} catch (error) {
|
|
636
|
-
request.sink.warn(`[mem] node="${request.label}" snapshot failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
637
|
-
}
|
|
638
605
|
}
|
|
639
606
|
//#endregion
|
|
640
607
|
//#region src/kernel/heap-watch.ts
|
|
@@ -9968,4 +9935,4 @@ async function defaultRun(command, args) {
|
|
|
9968
9935
|
await execFileAsync(command, [...args], { timeout: INSTALL_TIMEOUT_MS });
|
|
9969
9936
|
}
|
|
9970
9937
|
//#endregion
|
|
9971
|
-
export { buildUdsNativeCapProxy as $,
|
|
9938
|
+
export { buildUdsNativeCapProxy as $, formatHeapSpaces as $t, createUdsLoggerWithControl as A, HUB_MAIN_RSS_BUDGET_MB as At, readMoleculerFanoutMode as B, createV8Reclaimer as Bt, ipcParentLink as C, createAddonDataPlaneFacility as Ct, createUdsEventBus as D, HEAP_WATCH_INTERVAL_MS as Dt, createUdsEventBridge as E, HEAP_RECLAIM_TRIGGER_MB as Et, AGENT_CAP_FWD_SERVICE as F, RUNNER_RSS_BUDGET_ENV as Ft, createLocalTransport as G, reclaimIntervalMs as Gt, PARENT_ROUTED_PROVIDER_ADDON_ID as H, hubMainRssBudget as Ht, CapRouteResolver as I, ZERO_LOOP_DELAY as It, SocketChannel as J, startRunnerHeapWatch as Jt, UdsLocalTransportClient as K, shouldReclaim as Kt, CapRouteError as L, buildHeapSample as Lt, LocalChildRegistry as M, RSS_BUDGET_REANNOUNCE_MIN_MS as Mt, UDS_NO_ROUTE_PREFIX as N, RSS_BUDGET_RELEASE_RATIO as Nt, udsChildLogToWorkerEntry as O, HEAP_WATCH_WARN_RATIO as Ot, AGENT_CAP_FWD_ACTION as P, RUNNER_HEAP_WATCH_INTERVAL_MS as Pt, buildNativeCapProxy as Q, emitHeapDiagnosticReport as Qt, classifyCapRoute as R, createDeferredHeapWatchSink as Rt, buildLinkChain as S, runNpm as St, createParentUnownedCallHandler as T, HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS as Tt, __resetCapUsageRegistryForTests as U, nextRssBudgetState as Ut, CapUsageRegistry as V, describeRss as Vt, getCapUsageRegistry as W, parseRssBudgetMb as Wt, FrameDecoder as X, DECISIVE_HEAP_SPACES as Xt, localEndpointPath as Y, strandedMb as Yt, encodeFrame as Z, HEAP_SPACE_REPORT_MIN_MB as Zt, AddonDepsManager as _, createEventPlaneReader as _n, CapabilityUnavailableError as _t, createUdsAddonContext as a, createSocketPlaneMeter as an, createAddonService as at, brokerCallForCap as b, resolveAddonClass as bt, getOrInitReadinessRegistryForClient as c, formatSocketPlane as cn, capActionName as ct, clusterEventTopic as d, recordSocketFrame as dn, capServiceName as dt, heapSpaceField as en, createBrokerDeviceManagerApi as et, getBrokerEventBus as f, sampleSocketDirection as fn, parseCapAction as ft, subscribePassthrough as g, createEventPlaneMeter as gn, CapabilityHandle as gt, setNodeEventInterest as h, EVENT_PLANE_TOP_N as hn, DeviceRegistry as ht, createAddonContext as i, SOCKET_PLANE_TOP_N as in, setWorkerNativeCapsChangeListener as it, LocalChildClient as j, HUB_RSS_BUDGET_ENV as jt, createUdsLogger as k, HUB_MAIN_HEAP_WATCH_LABEL as kt, setHubConnected as l, EMPTY_SOCKET_DIRECTION as ln, capActionSuffix as lt, registerEventBusService as m, socketDirectionMessages as mn, serializeTypedArrays as mt, installManifestPythonDeps as n, selectReportedSpaces as nn, getWorkerNativeCapSnapshot as nt, getWorkerDeviceRegistry as o, createSocketPlaneReader as on, validateProviderRegistrations as ot, getMoleculerEventStats as p, socketDirectionBytes as pn, deserializeTypedArrays as pt, UdsLocalTransportServer as q, startHeapWatch as qt, adaptBrokerToCluster as r, EMPTY_SOCKET_PLANE_BASELINE as rn, mountNativeCapService as rt, getOrInitReadinessRegistry as s, diffSocketPlane as sn, NATIVE_PROVIDER_SERVICE_INFIX as st, installManifestSystemDeps as t, readHeapSpaces as tn, getWorkerNativeCapProvider as tt, EVENT_TOPIC_PREFIX as u, createSocketDirectionCounters as un, capBareAction as ut, createKernelHwAccel as v, diffEventPlane as vn, copyBundledNativeModules as vt, localProviderLink as w, HEAP_RECLAIM_MIN_INTERVAL_MS as wt, brokerTransportLink as x, resolveNpmInvocation as xt, resolveHwAccel as y, formatEventPlane as yn, installManifestNativeDeps as yt, callWithServiceDiscovery as z, createLoopDelayMeter as zt };
|