@vxil/cli 0.20.2 → 0.22.0

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.
@@ -0,0 +1,16 @@
1
+ export declare const AI_THINKING_LEVELS: readonly ["minimal", "low", "medium", "high"];
2
+ export type GeminiThinkingLevel = (typeof AI_THINKING_LEVELS)[number];
3
+ /** The lowest thinking level the model accepts. 3.x thinks by default; the
4
+ * 2.5-era `thinkingBudget:0` is INVALID on 3.x, and `thinkingLevel:'minimal'`
5
+ * (which zeroes thought tokens) is accepted by gemini-3-flash … 3.6-flash and
6
+ * every flash-lite, but REJECTED with a 400 ("Thinking level MINIMAL is not
7
+ * supported for this model") by gemini-3.7-flash and gemini-3.8-flash
8
+ * (measured 2026-10-03 on the staging key). Unknown model shapes (incl. the
9
+ * Pro models) get 'low': it is the one level measured as accepted on every
10
+ * 3.x model tried. */
11
+ export declare function minimalThinkingLevel(model: string): GeminiThinkingLevel;
12
+ /** Null when `model` is not known to reject `level`, else the reason. Only
13
+ * 'minimal' is checked (per the table above). Measured: 'low' on every 3.x
14
+ * model tried; medium/high are NOT verified per model — a model that rejects
15
+ * one fails as a provider 4xx after the reserve (refunded), not here. */
16
+ export declare function geminiThinkingLevelError(model: string, level: GeminiThinkingLevel): string | null;
@@ -1,4 +1,5 @@
1
1
  import { type Static, type TSchema } from '@sinclair/typebox';
2
+ export { AI_THINKING_LEVELS, geminiThinkingLevelError, minimalThinkingLevel, type GeminiThinkingLevel } from './_vxil-feature-configs-geminiThinking.js';
2
3
  export * from './_vxil-feature-configs-hooks.js';
3
4
  export * from './_vxil-feature-configs-readmodels.js';
4
5
  export * from './_vxil-feature-configs-apiState.js';
@@ -605,11 +606,12 @@ export declare const AiConfigSchema: import("@sinclair/typebox").TObject<{
605
606
  openaiBaseUrl: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
606
607
  }>>;
607
608
  }>;
608
- defaults: import("@sinclair/typebox").TObject<{
609
+ defaults: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
609
610
  model: import("@sinclair/typebox").TString;
610
611
  maxTokens: import("@sinclair/typebox").TInteger;
611
612
  temperature: import("@sinclair/typebox").TNumber;
612
- }>;
613
+ thinkingLevel: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<import("@sinclair/typebox").TLiteral<"minimal" | "low" | "medium" | "high">[]>>;
614
+ }>>;
613
615
  cache: import("@sinclair/typebox").TObject<{
614
616
  ttlSeconds: import("@sinclair/typebox").TInteger;
615
617
  }>;
@@ -822,12 +824,12 @@ export type AuthHookEvent = (typeof AUTH_HOOK_EVENTS)[number];
822
824
  /** The events a `cmsHook` function binding may name — the closed union
823
825
  * `packages/config` types on the `cmsHook` trigger, and the keys of the
824
826
  * functions-v1 receiver's CMS_HOOK_EVENTS_FOR (beforeCreate → created,
825
- * beforeUpdate → updated, beforeWrite → both). Omitted = beforeWrite. Anything
827
+ * beforeUpdate → updated, beforeWrite → both, afterPublish → published). Omitted = beforeWrite. Anything
826
828
  * else is refused at config write (E-CMSHOOK, 2026-10-01): an unknown name used
827
829
  * to fall back to beforeWrite at delivery, so a typo like 'afterCreate' or
828
830
  * 'beforeDelete' silently subscribed the function to creates AND updates.
829
831
  * A CI gate pins every copy to this list. */
830
- export declare const CMS_HOOK_EVENTS: readonly ["beforeCreate", "beforeUpdate", "beforeWrite"];
832
+ export declare const CMS_HOOK_EVENTS: readonly ["beforeCreate", "beforeUpdate", "beforeWrite", "afterPublish"];
831
833
  export type CmsHookEvent = (typeof CMS_HOOK_EVENTS)[number];
832
834
  /** The ONE refusal text for an unknown cmsHook binding event (the config
833
835
  * validator and the deploy route's early 422 both use it). */
package/dist/config.d.ts CHANGED
@@ -206,21 +206,24 @@ export type FunctionTrigger = {
206
206
  * name — lowercase dotted segments, ≤64 chars, validated at deploy — and is
207
207
  * also enforced at delivery: a non-matching event is ACK-200 skipped.
208
208
  * Declaring the binding is what opts the function into event delivery; a
209
- * receiver that declares only `cron` keeps the older cron+{} wake. */
209
+ * receiver that declares only `cron` keeps the older cron+{} wake.
210
+ * `source` is optional: a bare `{ kind: 'webhook' }` receives every event. */
210
211
  | {
211
212
  kind: 'webhook';
212
- source: string;
213
+ source?: string;
213
214
  retry?: FunctionTriggerRetry;
214
215
  }
215
216
  /** `cmsHook`: fires after a CMS write in `collection`. The platform filters
216
217
  * deliveries on the binding (2026-09-19): `beforeCreate` → created only,
217
- * `beforeUpdate` → updated only, `beforeWrite` → created|updated; a write to
218
- * another collection never wakes the function. Deleted/bulk events are not
219
- * delivered to a cmsHook binding. */
218
+ * `beforeUpdate` → updated only, `beforeWrite` → created|updated,
219
+ * `afterPublish` → published (a draft→published transition is its own event,
220
+ * not an update); a write to another collection never wakes the function.
221
+ * Deleted/bulk events are not delivered to a cmsHook binding. `event`
222
+ * defaults to `beforeWrite`. */
220
223
  | {
221
224
  kind: 'cmsHook';
222
225
  collection: string;
223
- event: 'beforeCreate' | 'beforeUpdate' | 'beforeWrite';
226
+ event?: 'beforeCreate' | 'beforeUpdate' | 'beforeWrite' | 'afterPublish';
224
227
  retry?: FunctionTriggerRetry;
225
228
  } | {
226
229
  kind: 'authHook';