@camstack/addon-agent-ui 1.2.56 → 1.2.58

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.
Files changed (2) hide show
  1. package/dist/addon.js +45 -6
  2. package/package.json +1 -1
package/dist/addon.js CHANGED
@@ -13260,6 +13260,35 @@ method(_void(), array(string()).readonly(), { auth: "admin" }), method(object({
13260
13260
  auth: "admin"
13261
13261
  });
13262
13262
  /**
13263
+ * Transport bounds for AI capability methods.
13264
+ *
13265
+ * Its own module because `llm.cap.ts` and `llm-runtime.cap.ts` already import
13266
+ * each other: declaring the constant in either one hands the other `undefined`
13267
+ * at module-init time, and an undefined `timeoutMs` silently falls back to the
13268
+ * kernel's 60 s default — the exact failure this constant exists to prevent,
13269
+ * reintroduced invisibly. Found by the guard, not by review.
13270
+ */
13271
+ /**
13272
+ * Ceiling for a cap method that runs inference or loads a model.
13273
+ *
13274
+ * Deliberately far above anything the AI layer itself may wait for (a summary
13275
+ * asks 180 s by default, a rule may ask 600 s), because the TRANSPORT must
13276
+ * never be the layer that gives up first: when it does, the failure is
13277
+ * reported as a transport error for a model that was still thinking, naming
13278
+ * the wrong layer and hiding the real one.
13279
+ *
13280
+ * Measured 2026-09-03: a 6-image vision request needs 44.8 s warm and ~20 s
13281
+ * more on a cold model load. With no declaration every digest failed at
13282
+ * exactly 60 s and shipped without its text.
13283
+ *
13284
+ * A ceiling, not a budget. The AI layer's own timeouts (the rule's `timeoutMs`,
13285
+ * the profile's `timeoutMs` / `firstTokenTimeoutMs`) remain the things that
13286
+ * decide when to stop, because only they can say WHY.
13287
+ */
13288
+ var AI_CAP_TRANSPORT_TIMEOUT_MS = 6e5;
13289
+ /** A multi-gigabyte download. An hour is not generous, it is honest. */
13290
+ var AI_MODEL_INSTALL_TIMEOUT_MS = 60 * 6e4;
13291
+ /**
13263
13292
  * Shared LLM generate contracts — imported by BOTH `llm.cap.ts` (consumer
13264
13293
  * surface) and `llm-runtime.cap.ts` (node-side managed executor) so the two
13265
13294
  * caps stay wire-compatible without a circular cap→cap import.
@@ -13531,16 +13560,19 @@ method(LlmGenerateBaseInputSchema.extend({
13531
13560
  timeoutMs: number().int().positive().optional()
13532
13561
  }), LlmGenerateResultSchema, {
13533
13562
  kind: "mutation",
13534
- auth: "admin"
13563
+ auth: "admin",
13564
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
13535
13565
  }), method(object({ runtime: ManagedRuntimeConfigSchema }), LlmRuntimeStatusSchema, {
13536
13566
  kind: "mutation",
13537
- auth: "admin"
13567
+ auth: "admin",
13568
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
13538
13569
  }), method(object({}), _void(), {
13539
13570
  kind: "mutation",
13540
13571
  auth: "admin"
13541
13572
  }), method(object({}), LlmRuntimeStatusSchema, { auth: "admin" }), method(object({ model: ManagedModelRefSchema }), _void(), {
13542
13573
  kind: "mutation",
13543
- auth: "admin"
13574
+ auth: "admin",
13575
+ timeoutMs: AI_MODEL_INSTALL_TIMEOUT_MS
13544
13576
  }), method(object({ file: string() }), _void(), {
13545
13577
  kind: "mutation",
13546
13578
  auth: "admin"
@@ -13708,7 +13740,13 @@ var ProfileRefInputSchema = object({
13708
13740
  addonId: string(),
13709
13741
  profileId: string()
13710
13742
  });
13711
- method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, { kind: "mutation" }), method(GenerateVisionInputSchema, LlmGenerateResultSchema, { kind: "mutation" }), method(object({
13743
+ method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, {
13744
+ kind: "mutation",
13745
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
13746
+ }), method(GenerateVisionInputSchema, LlmGenerateResultSchema, {
13747
+ kind: "mutation",
13748
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
13749
+ }), method(object({
13712
13750
  addonId: string().optional(),
13713
13751
  requestId: string()
13714
13752
  }), _void(), { kind: "mutation" }), method(object({}), array(LlmProfileKindDescriptorSchema)), method(object({}), array(LlmProfileSchema)), method(object({ profile: LlmProfileSchema }), LlmProfileSchema, {
@@ -13719,7 +13757,8 @@ method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, { kind: "mutation" }
13719
13757
  auth: "admin"
13720
13758
  }), method(ProfileRefInputSchema, LlmGenerateResultSchema, {
13721
13759
  kind: "mutation",
13722
- auth: "admin"
13760
+ auth: "admin",
13761
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
13723
13762
  }), method(ProfileRefInputSchema, array(string())), method(object({}), array(LlmDefaultSchema)), method(object({
13724
13763
  selector: LlmDefaultSelectorSchema,
13725
13764
  profileId: string().nullable()
@@ -37152,7 +37191,7 @@ var AgentUIAddon = class extends BaseAddon {
37152
37191
  capability: adminUiCapability,
37153
37192
  provider: {
37154
37193
  getStaticDir: async () => ({ staticDir: path.resolve(__dirname) }),
37155
- getVersion: async () => ({ version: "1.2.56" })
37194
+ getVersion: async () => ({ version: "1.2.58" })
37156
37195
  }
37157
37196
  }];
37158
37197
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-agent-ui",
3
- "version": "1.2.56",
3
+ "version": "1.2.58",
4
4
  "description": "Agent UI — lightweight status dashboard served by every agent node",
5
5
  "keywords": [
6
6
  "camstack",