@camstack/addon-notifiers 1.2.57 → 1.2.60

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.js CHANGED
@@ -13431,6 +13431,35 @@ method(_void(), array(string()).readonly(), { auth: "admin" }), method(object({
13431
13431
  auth: "admin"
13432
13432
  });
13433
13433
  /**
13434
+ * Transport bounds for AI capability methods.
13435
+ *
13436
+ * Its own module because `llm.cap.ts` and `llm-runtime.cap.ts` already import
13437
+ * each other: declaring the constant in either one hands the other `undefined`
13438
+ * at module-init time, and an undefined `timeoutMs` silently falls back to the
13439
+ * kernel's 60 s default — the exact failure this constant exists to prevent,
13440
+ * reintroduced invisibly. Found by the guard, not by review.
13441
+ */
13442
+ /**
13443
+ * Ceiling for a cap method that runs inference or loads a model.
13444
+ *
13445
+ * Deliberately far above anything the AI layer itself may wait for (a summary
13446
+ * asks 180 s by default, a rule may ask 600 s), because the TRANSPORT must
13447
+ * never be the layer that gives up first: when it does, the failure is
13448
+ * reported as a transport error for a model that was still thinking, naming
13449
+ * the wrong layer and hiding the real one.
13450
+ *
13451
+ * Measured 2026-09-03: a 6-image vision request needs 44.8 s warm and ~20 s
13452
+ * more on a cold model load. With no declaration every digest failed at
13453
+ * exactly 60 s and shipped without its text.
13454
+ *
13455
+ * A ceiling, not a budget. The AI layer's own timeouts (the rule's `timeoutMs`,
13456
+ * the profile's `timeoutMs` / `firstTokenTimeoutMs`) remain the things that
13457
+ * decide when to stop, because only they can say WHY.
13458
+ */
13459
+ var AI_CAP_TRANSPORT_TIMEOUT_MS = 6e5;
13460
+ /** A multi-gigabyte download. An hour is not generous, it is honest. */
13461
+ var AI_MODEL_INSTALL_TIMEOUT_MS = 60 * 6e4;
13462
+ /**
13434
13463
  * Shared LLM generate contracts — imported by BOTH `llm.cap.ts` (consumer
13435
13464
  * surface) and `llm-runtime.cap.ts` (node-side managed executor) so the two
13436
13465
  * caps stay wire-compatible without a circular cap→cap import.
@@ -13702,16 +13731,19 @@ method(LlmGenerateBaseInputSchema.extend({
13702
13731
  timeoutMs: number().int().positive().optional()
13703
13732
  }), LlmGenerateResultSchema, {
13704
13733
  kind: "mutation",
13705
- auth: "admin"
13734
+ auth: "admin",
13735
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
13706
13736
  }), method(object({ runtime: ManagedRuntimeConfigSchema }), LlmRuntimeStatusSchema, {
13707
13737
  kind: "mutation",
13708
- auth: "admin"
13738
+ auth: "admin",
13739
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
13709
13740
  }), method(object({}), _void(), {
13710
13741
  kind: "mutation",
13711
13742
  auth: "admin"
13712
13743
  }), method(object({}), LlmRuntimeStatusSchema, { auth: "admin" }), method(object({ model: ManagedModelRefSchema }), _void(), {
13713
13744
  kind: "mutation",
13714
- auth: "admin"
13745
+ auth: "admin",
13746
+ timeoutMs: AI_MODEL_INSTALL_TIMEOUT_MS
13715
13747
  }), method(object({ file: string() }), _void(), {
13716
13748
  kind: "mutation",
13717
13749
  auth: "admin"
@@ -13879,7 +13911,13 @@ var ProfileRefInputSchema = object({
13879
13911
  addonId: string(),
13880
13912
  profileId: string()
13881
13913
  });
13882
- method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, { kind: "mutation" }), method(GenerateVisionInputSchema, LlmGenerateResultSchema, { kind: "mutation" }), method(object({
13914
+ method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, {
13915
+ kind: "mutation",
13916
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
13917
+ }), method(GenerateVisionInputSchema, LlmGenerateResultSchema, {
13918
+ kind: "mutation",
13919
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
13920
+ }), method(object({
13883
13921
  addonId: string().optional(),
13884
13922
  requestId: string()
13885
13923
  }), _void(), { kind: "mutation" }), method(object({}), array(LlmProfileKindDescriptorSchema)), method(object({}), array(LlmProfileSchema)), method(object({ profile: LlmProfileSchema }), LlmProfileSchema, {
@@ -13890,7 +13928,8 @@ method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, { kind: "mutation" }
13890
13928
  auth: "admin"
13891
13929
  }), method(ProfileRefInputSchema, LlmGenerateResultSchema, {
13892
13930
  kind: "mutation",
13893
- auth: "admin"
13931
+ auth: "admin",
13932
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
13894
13933
  }), method(ProfileRefInputSchema, array(string())), method(object({}), array(LlmDefaultSchema)), method(object({
13895
13934
  selector: LlmDefaultSelectorSchema,
13896
13935
  profileId: string().nullable()
@@ -14356,17 +14395,6 @@ var ContainerMemoryPointSchema = object({
14356
14395
  */
14357
14396
  gpuShmemBytes: number().nullable()
14358
14397
  }).extend({ atMs: number() });
14359
- var DumpHeapSnapshotInputSchema = object({
14360
- /** The addon whose runner should dump a heap snapshot. */
14361
- addonId: string() });
14362
- var DumpHeapSnapshotResultSchema = object({
14363
- success: boolean(),
14364
- /** Path of the written .heapsnapshot inside the runner's container/host. */
14365
- path: string().optional(),
14366
- /** Process pid that was signalled. */
14367
- pid: number().optional(),
14368
- reason: string().optional()
14369
- });
14370
14398
  /**
14371
14399
  * One point of one function's series.
14372
14400
  *
@@ -14490,10 +14518,7 @@ var SystemMetricsSchema = object({
14490
14518
  gpuPercent: number().optional(),
14491
14519
  gpuMemoryPercent: number().optional()
14492
14520
  });
14493
- method(_void(), SystemResourceSnapshotSchema), method(_void(), SystemResourceSnapshotSchema.nullable()), method(_void(), SystemMetricsSchema), method(object({ dirPath: string() }), DiskSpaceInfoSchema), method(_void(), MetricsGpuInfoSchema.nullable()), method(_void(), number().nullable()), method(object({ pids: array(number()) }), array(PidResourceStatsSchema)), method(_void(), array(AddonInstanceSchema).readonly()), method(object({ addonId: string() }), PidResourceStatsSchema.nullable()), method(_void(), array(NodeProcessSchema).readonly()), method(GetLoadSeriesInputSchema, NodeLoadSeriesSchema), method(DumpHeapSnapshotInputSchema, DumpHeapSnapshotResultSchema, {
14494
- kind: "mutation",
14495
- auth: "admin"
14496
- });
14521
+ method(_void(), SystemResourceSnapshotSchema), method(_void(), SystemResourceSnapshotSchema.nullable()), method(_void(), SystemMetricsSchema), method(object({ dirPath: string() }), DiskSpaceInfoSchema), method(_void(), MetricsGpuInfoSchema.nullable()), method(_void(), number().nullable()), method(object({ pids: array(number()) }), array(PidResourceStatsSchema)), method(_void(), array(AddonInstanceSchema).readonly()), method(object({ addonId: string() }), PidResourceStatsSchema.nullable()), method(_void(), array(NodeProcessSchema).readonly()), method(GetLoadSeriesInputSchema, NodeLoadSeriesSchema);
14497
14522
  method(object({
14498
14523
  sourceUrl: string(),
14499
14524
  metadata: ModelConvertMetadataSchema,
@@ -18741,7 +18766,8 @@ var MediaFileKindEnum = _enum([
18741
18766
  "plateCrop",
18742
18767
  "keyFrame",
18743
18768
  "keyFrameSmall",
18744
- "thumbnailSmall"
18769
+ "thumbnailSmall",
18770
+ "sceneFrame"
18745
18771
  ]);
18746
18772
  /**
18747
18773
  * One media row ON THE WIRE: what it is, how big it is, and WHERE ITS BYTES
@@ -31559,12 +31585,6 @@ Object.freeze({
31559
31585
  addonId: null,
31560
31586
  access: "view"
31561
31587
  },
31562
- "metricsProvider.dumpHeapSnapshot": {
31563
- capName: "metrics-provider",
31564
- capScope: "system",
31565
- addonId: null,
31566
- access: "create"
31567
- },
31568
31588
  "metricsProvider.getAddonStats": {
31569
31589
  capName: "metrics-provider",
31570
31590
  capScope: "system",
package/dist/addon.mjs CHANGED
@@ -13404,6 +13404,35 @@ method(_void(), array(string()).readonly(), { auth: "admin" }), method(object({
13404
13404
  auth: "admin"
13405
13405
  });
13406
13406
  /**
13407
+ * Transport bounds for AI capability methods.
13408
+ *
13409
+ * Its own module because `llm.cap.ts` and `llm-runtime.cap.ts` already import
13410
+ * each other: declaring the constant in either one hands the other `undefined`
13411
+ * at module-init time, and an undefined `timeoutMs` silently falls back to the
13412
+ * kernel's 60 s default — the exact failure this constant exists to prevent,
13413
+ * reintroduced invisibly. Found by the guard, not by review.
13414
+ */
13415
+ /**
13416
+ * Ceiling for a cap method that runs inference or loads a model.
13417
+ *
13418
+ * Deliberately far above anything the AI layer itself may wait for (a summary
13419
+ * asks 180 s by default, a rule may ask 600 s), because the TRANSPORT must
13420
+ * never be the layer that gives up first: when it does, the failure is
13421
+ * reported as a transport error for a model that was still thinking, naming
13422
+ * the wrong layer and hiding the real one.
13423
+ *
13424
+ * Measured 2026-09-03: a 6-image vision request needs 44.8 s warm and ~20 s
13425
+ * more on a cold model load. With no declaration every digest failed at
13426
+ * exactly 60 s and shipped without its text.
13427
+ *
13428
+ * A ceiling, not a budget. The AI layer's own timeouts (the rule's `timeoutMs`,
13429
+ * the profile's `timeoutMs` / `firstTokenTimeoutMs`) remain the things that
13430
+ * decide when to stop, because only they can say WHY.
13431
+ */
13432
+ var AI_CAP_TRANSPORT_TIMEOUT_MS = 6e5;
13433
+ /** A multi-gigabyte download. An hour is not generous, it is honest. */
13434
+ var AI_MODEL_INSTALL_TIMEOUT_MS = 60 * 6e4;
13435
+ /**
13407
13436
  * Shared LLM generate contracts — imported by BOTH `llm.cap.ts` (consumer
13408
13437
  * surface) and `llm-runtime.cap.ts` (node-side managed executor) so the two
13409
13438
  * caps stay wire-compatible without a circular cap→cap import.
@@ -13675,16 +13704,19 @@ method(LlmGenerateBaseInputSchema.extend({
13675
13704
  timeoutMs: number().int().positive().optional()
13676
13705
  }), LlmGenerateResultSchema, {
13677
13706
  kind: "mutation",
13678
- auth: "admin"
13707
+ auth: "admin",
13708
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
13679
13709
  }), method(object({ runtime: ManagedRuntimeConfigSchema }), LlmRuntimeStatusSchema, {
13680
13710
  kind: "mutation",
13681
- auth: "admin"
13711
+ auth: "admin",
13712
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
13682
13713
  }), method(object({}), _void(), {
13683
13714
  kind: "mutation",
13684
13715
  auth: "admin"
13685
13716
  }), method(object({}), LlmRuntimeStatusSchema, { auth: "admin" }), method(object({ model: ManagedModelRefSchema }), _void(), {
13686
13717
  kind: "mutation",
13687
- auth: "admin"
13718
+ auth: "admin",
13719
+ timeoutMs: AI_MODEL_INSTALL_TIMEOUT_MS
13688
13720
  }), method(object({ file: string() }), _void(), {
13689
13721
  kind: "mutation",
13690
13722
  auth: "admin"
@@ -13852,7 +13884,13 @@ var ProfileRefInputSchema = object({
13852
13884
  addonId: string(),
13853
13885
  profileId: string()
13854
13886
  });
13855
- method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, { kind: "mutation" }), method(GenerateVisionInputSchema, LlmGenerateResultSchema, { kind: "mutation" }), method(object({
13887
+ method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, {
13888
+ kind: "mutation",
13889
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
13890
+ }), method(GenerateVisionInputSchema, LlmGenerateResultSchema, {
13891
+ kind: "mutation",
13892
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
13893
+ }), method(object({
13856
13894
  addonId: string().optional(),
13857
13895
  requestId: string()
13858
13896
  }), _void(), { kind: "mutation" }), method(object({}), array(LlmProfileKindDescriptorSchema)), method(object({}), array(LlmProfileSchema)), method(object({ profile: LlmProfileSchema }), LlmProfileSchema, {
@@ -13863,7 +13901,8 @@ method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, { kind: "mutation" }
13863
13901
  auth: "admin"
13864
13902
  }), method(ProfileRefInputSchema, LlmGenerateResultSchema, {
13865
13903
  kind: "mutation",
13866
- auth: "admin"
13904
+ auth: "admin",
13905
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
13867
13906
  }), method(ProfileRefInputSchema, array(string())), method(object({}), array(LlmDefaultSchema)), method(object({
13868
13907
  selector: LlmDefaultSelectorSchema,
13869
13908
  profileId: string().nullable()
@@ -14329,17 +14368,6 @@ var ContainerMemoryPointSchema = object({
14329
14368
  */
14330
14369
  gpuShmemBytes: number().nullable()
14331
14370
  }).extend({ atMs: number() });
14332
- var DumpHeapSnapshotInputSchema = object({
14333
- /** The addon whose runner should dump a heap snapshot. */
14334
- addonId: string() });
14335
- var DumpHeapSnapshotResultSchema = object({
14336
- success: boolean(),
14337
- /** Path of the written .heapsnapshot inside the runner's container/host. */
14338
- path: string().optional(),
14339
- /** Process pid that was signalled. */
14340
- pid: number().optional(),
14341
- reason: string().optional()
14342
- });
14343
14371
  /**
14344
14372
  * One point of one function's series.
14345
14373
  *
@@ -14463,10 +14491,7 @@ var SystemMetricsSchema = object({
14463
14491
  gpuPercent: number().optional(),
14464
14492
  gpuMemoryPercent: number().optional()
14465
14493
  });
14466
- method(_void(), SystemResourceSnapshotSchema), method(_void(), SystemResourceSnapshotSchema.nullable()), method(_void(), SystemMetricsSchema), method(object({ dirPath: string() }), DiskSpaceInfoSchema), method(_void(), MetricsGpuInfoSchema.nullable()), method(_void(), number().nullable()), method(object({ pids: array(number()) }), array(PidResourceStatsSchema)), method(_void(), array(AddonInstanceSchema).readonly()), method(object({ addonId: string() }), PidResourceStatsSchema.nullable()), method(_void(), array(NodeProcessSchema).readonly()), method(GetLoadSeriesInputSchema, NodeLoadSeriesSchema), method(DumpHeapSnapshotInputSchema, DumpHeapSnapshotResultSchema, {
14467
- kind: "mutation",
14468
- auth: "admin"
14469
- });
14494
+ method(_void(), SystemResourceSnapshotSchema), method(_void(), SystemResourceSnapshotSchema.nullable()), method(_void(), SystemMetricsSchema), method(object({ dirPath: string() }), DiskSpaceInfoSchema), method(_void(), MetricsGpuInfoSchema.nullable()), method(_void(), number().nullable()), method(object({ pids: array(number()) }), array(PidResourceStatsSchema)), method(_void(), array(AddonInstanceSchema).readonly()), method(object({ addonId: string() }), PidResourceStatsSchema.nullable()), method(_void(), array(NodeProcessSchema).readonly()), method(GetLoadSeriesInputSchema, NodeLoadSeriesSchema);
14470
14495
  method(object({
14471
14496
  sourceUrl: string(),
14472
14497
  metadata: ModelConvertMetadataSchema,
@@ -18714,7 +18739,8 @@ var MediaFileKindEnum = _enum([
18714
18739
  "plateCrop",
18715
18740
  "keyFrame",
18716
18741
  "keyFrameSmall",
18717
- "thumbnailSmall"
18742
+ "thumbnailSmall",
18743
+ "sceneFrame"
18718
18744
  ]);
18719
18745
  /**
18720
18746
  * One media row ON THE WIRE: what it is, how big it is, and WHERE ITS BYTES
@@ -31532,12 +31558,6 @@ Object.freeze({
31532
31558
  addonId: null,
31533
31559
  access: "view"
31534
31560
  },
31535
- "metricsProvider.dumpHeapSnapshot": {
31536
- capName: "metrics-provider",
31537
- capScope: "system",
31538
- addonId: null,
31539
- access: "create"
31540
- },
31541
31561
  "metricsProvider.getAddonStats": {
31542
31562
  capName: "metrics-provider",
31543
31563
  capScope: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-notifiers",
3
- "version": "1.2.57",
3
+ "version": "1.2.60",
4
4
  "description": "System notifiers addon for CamStack — a `notification-output` collection provider hosting per-kind notifier adapters (ntfy, pushover, gotify, telegram, discord, webhook, zentik).",
5
5
  "keywords": [
6
6
  "camstack",