@camstack/addon-provider-wyze 0.2.57 → 0.2.59

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
@@ -13570,6 +13570,35 @@ method(_void(), array(string()).readonly(), { auth: "admin" }), method(object({
13570
13570
  auth: "admin"
13571
13571
  });
13572
13572
  /**
13573
+ * Transport bounds for AI capability methods.
13574
+ *
13575
+ * Its own module because `llm.cap.ts` and `llm-runtime.cap.ts` already import
13576
+ * each other: declaring the constant in either one hands the other `undefined`
13577
+ * at module-init time, and an undefined `timeoutMs` silently falls back to the
13578
+ * kernel's 60 s default — the exact failure this constant exists to prevent,
13579
+ * reintroduced invisibly. Found by the guard, not by review.
13580
+ */
13581
+ /**
13582
+ * Ceiling for a cap method that runs inference or loads a model.
13583
+ *
13584
+ * Deliberately far above anything the AI layer itself may wait for (a summary
13585
+ * asks 180 s by default, a rule may ask 600 s), because the TRANSPORT must
13586
+ * never be the layer that gives up first: when it does, the failure is
13587
+ * reported as a transport error for a model that was still thinking, naming
13588
+ * the wrong layer and hiding the real one.
13589
+ *
13590
+ * Measured 2026-09-03: a 6-image vision request needs 44.8 s warm and ~20 s
13591
+ * more on a cold model load. With no declaration every digest failed at
13592
+ * exactly 60 s and shipped without its text.
13593
+ *
13594
+ * A ceiling, not a budget. The AI layer's own timeouts (the rule's `timeoutMs`,
13595
+ * the profile's `timeoutMs` / `firstTokenTimeoutMs`) remain the things that
13596
+ * decide when to stop, because only they can say WHY.
13597
+ */
13598
+ var AI_CAP_TRANSPORT_TIMEOUT_MS = 6e5;
13599
+ /** A multi-gigabyte download. An hour is not generous, it is honest. */
13600
+ var AI_MODEL_INSTALL_TIMEOUT_MS = 60 * 6e4;
13601
+ /**
13573
13602
  * Shared LLM generate contracts — imported by BOTH `llm.cap.ts` (consumer
13574
13603
  * surface) and `llm-runtime.cap.ts` (node-side managed executor) so the two
13575
13604
  * caps stay wire-compatible without a circular cap→cap import.
@@ -13841,16 +13870,19 @@ method(LlmGenerateBaseInputSchema.extend({
13841
13870
  timeoutMs: number().int().positive().optional()
13842
13871
  }), LlmGenerateResultSchema, {
13843
13872
  kind: "mutation",
13844
- auth: "admin"
13873
+ auth: "admin",
13874
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
13845
13875
  }), method(object({ runtime: ManagedRuntimeConfigSchema }), LlmRuntimeStatusSchema, {
13846
13876
  kind: "mutation",
13847
- auth: "admin"
13877
+ auth: "admin",
13878
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
13848
13879
  }), method(object({}), _void(), {
13849
13880
  kind: "mutation",
13850
13881
  auth: "admin"
13851
13882
  }), method(object({}), LlmRuntimeStatusSchema, { auth: "admin" }), method(object({ model: ManagedModelRefSchema }), _void(), {
13852
13883
  kind: "mutation",
13853
- auth: "admin"
13884
+ auth: "admin",
13885
+ timeoutMs: AI_MODEL_INSTALL_TIMEOUT_MS
13854
13886
  }), method(object({ file: string() }), _void(), {
13855
13887
  kind: "mutation",
13856
13888
  auth: "admin"
@@ -14018,7 +14050,13 @@ var ProfileRefInputSchema = object({
14018
14050
  addonId: string(),
14019
14051
  profileId: string()
14020
14052
  });
14021
- method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, { kind: "mutation" }), method(GenerateVisionInputSchema, LlmGenerateResultSchema, { kind: "mutation" }), method(object({
14053
+ method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, {
14054
+ kind: "mutation",
14055
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
14056
+ }), method(GenerateVisionInputSchema, LlmGenerateResultSchema, {
14057
+ kind: "mutation",
14058
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
14059
+ }), method(object({
14022
14060
  addonId: string().optional(),
14023
14061
  requestId: string()
14024
14062
  }), _void(), { kind: "mutation" }), method(object({}), array(LlmProfileKindDescriptorSchema)), method(object({}), array(LlmProfileSchema)), method(object({ profile: LlmProfileSchema }), LlmProfileSchema, {
@@ -14029,7 +14067,8 @@ method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, { kind: "mutation" }
14029
14067
  auth: "admin"
14030
14068
  }), method(ProfileRefInputSchema, LlmGenerateResultSchema, {
14031
14069
  kind: "mutation",
14032
- auth: "admin"
14070
+ auth: "admin",
14071
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
14033
14072
  }), method(ProfileRefInputSchema, array(string())), method(object({}), array(LlmDefaultSchema)), method(object({
14034
14073
  selector: LlmDefaultSelectorSchema,
14035
14074
  profileId: string().nullable()
package/dist/addon.mjs CHANGED
@@ -13549,6 +13549,35 @@ method(_void(), array(string()).readonly(), { auth: "admin" }), method(object({
13549
13549
  auth: "admin"
13550
13550
  });
13551
13551
  /**
13552
+ * Transport bounds for AI capability methods.
13553
+ *
13554
+ * Its own module because `llm.cap.ts` and `llm-runtime.cap.ts` already import
13555
+ * each other: declaring the constant in either one hands the other `undefined`
13556
+ * at module-init time, and an undefined `timeoutMs` silently falls back to the
13557
+ * kernel's 60 s default — the exact failure this constant exists to prevent,
13558
+ * reintroduced invisibly. Found by the guard, not by review.
13559
+ */
13560
+ /**
13561
+ * Ceiling for a cap method that runs inference or loads a model.
13562
+ *
13563
+ * Deliberately far above anything the AI layer itself may wait for (a summary
13564
+ * asks 180 s by default, a rule may ask 600 s), because the TRANSPORT must
13565
+ * never be the layer that gives up first: when it does, the failure is
13566
+ * reported as a transport error for a model that was still thinking, naming
13567
+ * the wrong layer and hiding the real one.
13568
+ *
13569
+ * Measured 2026-09-03: a 6-image vision request needs 44.8 s warm and ~20 s
13570
+ * more on a cold model load. With no declaration every digest failed at
13571
+ * exactly 60 s and shipped without its text.
13572
+ *
13573
+ * A ceiling, not a budget. The AI layer's own timeouts (the rule's `timeoutMs`,
13574
+ * the profile's `timeoutMs` / `firstTokenTimeoutMs`) remain the things that
13575
+ * decide when to stop, because only they can say WHY.
13576
+ */
13577
+ var AI_CAP_TRANSPORT_TIMEOUT_MS = 6e5;
13578
+ /** A multi-gigabyte download. An hour is not generous, it is honest. */
13579
+ var AI_MODEL_INSTALL_TIMEOUT_MS = 60 * 6e4;
13580
+ /**
13552
13581
  * Shared LLM generate contracts — imported by BOTH `llm.cap.ts` (consumer
13553
13582
  * surface) and `llm-runtime.cap.ts` (node-side managed executor) so the two
13554
13583
  * caps stay wire-compatible without a circular cap→cap import.
@@ -13820,16 +13849,19 @@ method(LlmGenerateBaseInputSchema.extend({
13820
13849
  timeoutMs: number().int().positive().optional()
13821
13850
  }), LlmGenerateResultSchema, {
13822
13851
  kind: "mutation",
13823
- auth: "admin"
13852
+ auth: "admin",
13853
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
13824
13854
  }), method(object({ runtime: ManagedRuntimeConfigSchema }), LlmRuntimeStatusSchema, {
13825
13855
  kind: "mutation",
13826
- auth: "admin"
13856
+ auth: "admin",
13857
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
13827
13858
  }), method(object({}), _void(), {
13828
13859
  kind: "mutation",
13829
13860
  auth: "admin"
13830
13861
  }), method(object({}), LlmRuntimeStatusSchema, { auth: "admin" }), method(object({ model: ManagedModelRefSchema }), _void(), {
13831
13862
  kind: "mutation",
13832
- auth: "admin"
13863
+ auth: "admin",
13864
+ timeoutMs: AI_MODEL_INSTALL_TIMEOUT_MS
13833
13865
  }), method(object({ file: string() }), _void(), {
13834
13866
  kind: "mutation",
13835
13867
  auth: "admin"
@@ -13997,7 +14029,13 @@ var ProfileRefInputSchema = object({
13997
14029
  addonId: string(),
13998
14030
  profileId: string()
13999
14031
  });
14000
- method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, { kind: "mutation" }), method(GenerateVisionInputSchema, LlmGenerateResultSchema, { kind: "mutation" }), method(object({
14032
+ method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, {
14033
+ kind: "mutation",
14034
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
14035
+ }), method(GenerateVisionInputSchema, LlmGenerateResultSchema, {
14036
+ kind: "mutation",
14037
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
14038
+ }), method(object({
14001
14039
  addonId: string().optional(),
14002
14040
  requestId: string()
14003
14041
  }), _void(), { kind: "mutation" }), method(object({}), array(LlmProfileKindDescriptorSchema)), method(object({}), array(LlmProfileSchema)), method(object({ profile: LlmProfileSchema }), LlmProfileSchema, {
@@ -14008,7 +14046,8 @@ method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, { kind: "mutation" }
14008
14046
  auth: "admin"
14009
14047
  }), method(ProfileRefInputSchema, LlmGenerateResultSchema, {
14010
14048
  kind: "mutation",
14011
- auth: "admin"
14049
+ auth: "admin",
14050
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
14012
14051
  }), method(ProfileRefInputSchema, array(string())), method(object({}), array(LlmDefaultSchema)), method(object({
14013
14052
  selector: LlmDefaultSelectorSchema,
14014
14053
  profileId: string().nullable()
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-wyze",
3
- "version": "0.2.57",
3
+ "version": "0.2.59",
4
4
  "description": "Wyze camera device-provider addon for CamStack — wraps the @apocaliss92/wyze-bridge-js P2P/DTLS client, feeding the stream-broker via the pull-rfc4571 lazy-publish path (a structural twin of addon-provider-reolink)",
5
5
  "keywords": [
6
6
  "camstack",