@camstack/addon-provider-petkit 0.2.53 → 0.2.56

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
@@ -14640,6 +14640,35 @@ method(_void(), array(string()).readonly(), { auth: "admin" }), method(object({
14640
14640
  auth: "admin"
14641
14641
  });
14642
14642
  /**
14643
+ * Transport bounds for AI capability methods.
14644
+ *
14645
+ * Its own module because `llm.cap.ts` and `llm-runtime.cap.ts` already import
14646
+ * each other: declaring the constant in either one hands the other `undefined`
14647
+ * at module-init time, and an undefined `timeoutMs` silently falls back to the
14648
+ * kernel's 60 s default — the exact failure this constant exists to prevent,
14649
+ * reintroduced invisibly. Found by the guard, not by review.
14650
+ */
14651
+ /**
14652
+ * Ceiling for a cap method that runs inference or loads a model.
14653
+ *
14654
+ * Deliberately far above anything the AI layer itself may wait for (a summary
14655
+ * asks 180 s by default, a rule may ask 600 s), because the TRANSPORT must
14656
+ * never be the layer that gives up first: when it does, the failure is
14657
+ * reported as a transport error for a model that was still thinking, naming
14658
+ * the wrong layer and hiding the real one.
14659
+ *
14660
+ * Measured 2026-09-03: a 6-image vision request needs 44.8 s warm and ~20 s
14661
+ * more on a cold model load. With no declaration every digest failed at
14662
+ * exactly 60 s and shipped without its text.
14663
+ *
14664
+ * A ceiling, not a budget. The AI layer's own timeouts (the rule's `timeoutMs`,
14665
+ * the profile's `timeoutMs` / `firstTokenTimeoutMs`) remain the things that
14666
+ * decide when to stop, because only they can say WHY.
14667
+ */
14668
+ var AI_CAP_TRANSPORT_TIMEOUT_MS = 6e5;
14669
+ /** A multi-gigabyte download. An hour is not generous, it is honest. */
14670
+ var AI_MODEL_INSTALL_TIMEOUT_MS = 60 * 6e4;
14671
+ /**
14643
14672
  * Shared LLM generate contracts — imported by BOTH `llm.cap.ts` (consumer
14644
14673
  * surface) and `llm-runtime.cap.ts` (node-side managed executor) so the two
14645
14674
  * caps stay wire-compatible without a circular cap→cap import.
@@ -14911,16 +14940,19 @@ method(LlmGenerateBaseInputSchema.extend({
14911
14940
  timeoutMs: number().int().positive().optional()
14912
14941
  }), LlmGenerateResultSchema, {
14913
14942
  kind: "mutation",
14914
- auth: "admin"
14943
+ auth: "admin",
14944
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
14915
14945
  }), method(object({ runtime: ManagedRuntimeConfigSchema }), LlmRuntimeStatusSchema, {
14916
14946
  kind: "mutation",
14917
- auth: "admin"
14947
+ auth: "admin",
14948
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
14918
14949
  }), method(object({}), _void(), {
14919
14950
  kind: "mutation",
14920
14951
  auth: "admin"
14921
14952
  }), method(object({}), LlmRuntimeStatusSchema, { auth: "admin" }), method(object({ model: ManagedModelRefSchema }), _void(), {
14922
14953
  kind: "mutation",
14923
- auth: "admin"
14954
+ auth: "admin",
14955
+ timeoutMs: AI_MODEL_INSTALL_TIMEOUT_MS
14924
14956
  }), method(object({ file: string() }), _void(), {
14925
14957
  kind: "mutation",
14926
14958
  auth: "admin"
@@ -15088,7 +15120,13 @@ var ProfileRefInputSchema = object({
15088
15120
  addonId: string(),
15089
15121
  profileId: string()
15090
15122
  });
15091
- method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, { kind: "mutation" }), method(GenerateVisionInputSchema, LlmGenerateResultSchema, { kind: "mutation" }), method(object({
15123
+ method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, {
15124
+ kind: "mutation",
15125
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
15126
+ }), method(GenerateVisionInputSchema, LlmGenerateResultSchema, {
15127
+ kind: "mutation",
15128
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
15129
+ }), method(object({
15092
15130
  addonId: string().optional(),
15093
15131
  requestId: string()
15094
15132
  }), _void(), { kind: "mutation" }), method(object({}), array(LlmProfileKindDescriptorSchema)), method(object({}), array(LlmProfileSchema)), method(object({ profile: LlmProfileSchema }), LlmProfileSchema, {
@@ -15099,7 +15137,8 @@ method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, { kind: "mutation" }
15099
15137
  auth: "admin"
15100
15138
  }), method(ProfileRefInputSchema, LlmGenerateResultSchema, {
15101
15139
  kind: "mutation",
15102
- auth: "admin"
15140
+ auth: "admin",
15141
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
15103
15142
  }), method(ProfileRefInputSchema, array(string())), method(object({}), array(LlmDefaultSchema)), method(object({
15104
15143
  selector: LlmDefaultSelectorSchema,
15105
15144
  profileId: string().nullable()
@@ -15565,17 +15604,6 @@ var ContainerMemoryPointSchema = object({
15565
15604
  */
15566
15605
  gpuShmemBytes: number().nullable()
15567
15606
  }).extend({ atMs: number() });
15568
- var DumpHeapSnapshotInputSchema = object({
15569
- /** The addon whose runner should dump a heap snapshot. */
15570
- addonId: string() });
15571
- var DumpHeapSnapshotResultSchema = object({
15572
- success: boolean(),
15573
- /** Path of the written .heapsnapshot inside the runner's container/host. */
15574
- path: string().optional(),
15575
- /** Process pid that was signalled. */
15576
- pid: number().optional(),
15577
- reason: string().optional()
15578
- });
15579
15607
  /**
15580
15608
  * One point of one function's series.
15581
15609
  *
@@ -15699,10 +15727,7 @@ var SystemMetricsSchema = object({
15699
15727
  gpuPercent: number().optional(),
15700
15728
  gpuMemoryPercent: number().optional()
15701
15729
  });
15702
- 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, {
15703
- kind: "mutation",
15704
- auth: "admin"
15705
- });
15730
+ 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);
15706
15731
  method(object({
15707
15732
  sourceUrl: string(),
15708
15733
  metadata: ModelConvertMetadataSchema,
@@ -20014,7 +20039,8 @@ var MediaFileKindEnum = _enum([
20014
20039
  "plateCrop",
20015
20040
  "keyFrame",
20016
20041
  "keyFrameSmall",
20017
- "thumbnailSmall"
20042
+ "thumbnailSmall",
20043
+ "sceneFrame"
20018
20044
  ]);
20019
20045
  /**
20020
20046
  * One media row ON THE WIRE: what it is, how big it is, and WHERE ITS BYTES
@@ -36254,12 +36280,6 @@ Object.freeze({
36254
36280
  addonId: null,
36255
36281
  access: "view"
36256
36282
  },
36257
- "metricsProvider.dumpHeapSnapshot": {
36258
- capName: "metrics-provider",
36259
- capScope: "system",
36260
- addonId: null,
36261
- access: "create"
36262
- },
36263
36283
  "metricsProvider.getAddonStats": {
36264
36284
  capName: "metrics-provider",
36265
36285
  capScope: "system",
package/dist/addon.mjs CHANGED
@@ -14639,6 +14639,35 @@ method(_void(), array(string()).readonly(), { auth: "admin" }), method(object({
14639
14639
  auth: "admin"
14640
14640
  });
14641
14641
  /**
14642
+ * Transport bounds for AI capability methods.
14643
+ *
14644
+ * Its own module because `llm.cap.ts` and `llm-runtime.cap.ts` already import
14645
+ * each other: declaring the constant in either one hands the other `undefined`
14646
+ * at module-init time, and an undefined `timeoutMs` silently falls back to the
14647
+ * kernel's 60 s default — the exact failure this constant exists to prevent,
14648
+ * reintroduced invisibly. Found by the guard, not by review.
14649
+ */
14650
+ /**
14651
+ * Ceiling for a cap method that runs inference or loads a model.
14652
+ *
14653
+ * Deliberately far above anything the AI layer itself may wait for (a summary
14654
+ * asks 180 s by default, a rule may ask 600 s), because the TRANSPORT must
14655
+ * never be the layer that gives up first: when it does, the failure is
14656
+ * reported as a transport error for a model that was still thinking, naming
14657
+ * the wrong layer and hiding the real one.
14658
+ *
14659
+ * Measured 2026-09-03: a 6-image vision request needs 44.8 s warm and ~20 s
14660
+ * more on a cold model load. With no declaration every digest failed at
14661
+ * exactly 60 s and shipped without its text.
14662
+ *
14663
+ * A ceiling, not a budget. The AI layer's own timeouts (the rule's `timeoutMs`,
14664
+ * the profile's `timeoutMs` / `firstTokenTimeoutMs`) remain the things that
14665
+ * decide when to stop, because only they can say WHY.
14666
+ */
14667
+ var AI_CAP_TRANSPORT_TIMEOUT_MS = 6e5;
14668
+ /** A multi-gigabyte download. An hour is not generous, it is honest. */
14669
+ var AI_MODEL_INSTALL_TIMEOUT_MS = 60 * 6e4;
14670
+ /**
14642
14671
  * Shared LLM generate contracts — imported by BOTH `llm.cap.ts` (consumer
14643
14672
  * surface) and `llm-runtime.cap.ts` (node-side managed executor) so the two
14644
14673
  * caps stay wire-compatible without a circular cap→cap import.
@@ -14910,16 +14939,19 @@ method(LlmGenerateBaseInputSchema.extend({
14910
14939
  timeoutMs: number().int().positive().optional()
14911
14940
  }), LlmGenerateResultSchema, {
14912
14941
  kind: "mutation",
14913
- auth: "admin"
14942
+ auth: "admin",
14943
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
14914
14944
  }), method(object({ runtime: ManagedRuntimeConfigSchema }), LlmRuntimeStatusSchema, {
14915
14945
  kind: "mutation",
14916
- auth: "admin"
14946
+ auth: "admin",
14947
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
14917
14948
  }), method(object({}), _void(), {
14918
14949
  kind: "mutation",
14919
14950
  auth: "admin"
14920
14951
  }), method(object({}), LlmRuntimeStatusSchema, { auth: "admin" }), method(object({ model: ManagedModelRefSchema }), _void(), {
14921
14952
  kind: "mutation",
14922
- auth: "admin"
14953
+ auth: "admin",
14954
+ timeoutMs: AI_MODEL_INSTALL_TIMEOUT_MS
14923
14955
  }), method(object({ file: string() }), _void(), {
14924
14956
  kind: "mutation",
14925
14957
  auth: "admin"
@@ -15087,7 +15119,13 @@ var ProfileRefInputSchema = object({
15087
15119
  addonId: string(),
15088
15120
  profileId: string()
15089
15121
  });
15090
- method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, { kind: "mutation" }), method(GenerateVisionInputSchema, LlmGenerateResultSchema, { kind: "mutation" }), method(object({
15122
+ method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, {
15123
+ kind: "mutation",
15124
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
15125
+ }), method(GenerateVisionInputSchema, LlmGenerateResultSchema, {
15126
+ kind: "mutation",
15127
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
15128
+ }), method(object({
15091
15129
  addonId: string().optional(),
15092
15130
  requestId: string()
15093
15131
  }), _void(), { kind: "mutation" }), method(object({}), array(LlmProfileKindDescriptorSchema)), method(object({}), array(LlmProfileSchema)), method(object({ profile: LlmProfileSchema }), LlmProfileSchema, {
@@ -15098,7 +15136,8 @@ method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, { kind: "mutation" }
15098
15136
  auth: "admin"
15099
15137
  }), method(ProfileRefInputSchema, LlmGenerateResultSchema, {
15100
15138
  kind: "mutation",
15101
- auth: "admin"
15139
+ auth: "admin",
15140
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
15102
15141
  }), method(ProfileRefInputSchema, array(string())), method(object({}), array(LlmDefaultSchema)), method(object({
15103
15142
  selector: LlmDefaultSelectorSchema,
15104
15143
  profileId: string().nullable()
@@ -15564,17 +15603,6 @@ var ContainerMemoryPointSchema = object({
15564
15603
  */
15565
15604
  gpuShmemBytes: number().nullable()
15566
15605
  }).extend({ atMs: number() });
15567
- var DumpHeapSnapshotInputSchema = object({
15568
- /** The addon whose runner should dump a heap snapshot. */
15569
- addonId: string() });
15570
- var DumpHeapSnapshotResultSchema = object({
15571
- success: boolean(),
15572
- /** Path of the written .heapsnapshot inside the runner's container/host. */
15573
- path: string().optional(),
15574
- /** Process pid that was signalled. */
15575
- pid: number().optional(),
15576
- reason: string().optional()
15577
- });
15578
15606
  /**
15579
15607
  * One point of one function's series.
15580
15608
  *
@@ -15698,10 +15726,7 @@ var SystemMetricsSchema = object({
15698
15726
  gpuPercent: number().optional(),
15699
15727
  gpuMemoryPercent: number().optional()
15700
15728
  });
15701
- 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, {
15702
- kind: "mutation",
15703
- auth: "admin"
15704
- });
15729
+ 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);
15705
15730
  method(object({
15706
15731
  sourceUrl: string(),
15707
15732
  metadata: ModelConvertMetadataSchema,
@@ -20013,7 +20038,8 @@ var MediaFileKindEnum = _enum([
20013
20038
  "plateCrop",
20014
20039
  "keyFrame",
20015
20040
  "keyFrameSmall",
20016
- "thumbnailSmall"
20041
+ "thumbnailSmall",
20042
+ "sceneFrame"
20017
20043
  ]);
20018
20044
  /**
20019
20045
  * One media row ON THE WIRE: what it is, how big it is, and WHERE ITS BYTES
@@ -36253,12 +36279,6 @@ Object.freeze({
36253
36279
  addonId: null,
36254
36280
  access: "view"
36255
36281
  },
36256
- "metricsProvider.dumpHeapSnapshot": {
36257
- capName: "metrics-provider",
36258
- capScope: "system",
36259
- addonId: null,
36260
- access: "create"
36261
- },
36262
36282
  "metricsProvider.getAddonStats": {
36263
36283
  capName: "metrics-provider",
36264
36284
  capScope: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-petkit",
3
- "version": "0.2.53",
3
+ "version": "0.2.56",
4
4
  "description": "PetKit smart-feeder device-provider addon for CamStack — wraps the @apocaliss92/nodepetkit PetKit cloud client",
5
5
  "keywords": [
6
6
  "camstack",