@wayai/cli 0.3.192 → 0.3.193

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/index.js CHANGED
@@ -488,7 +488,7 @@ var init_sentry = __esm({
488
488
  }
489
489
  });
490
490
 
491
- // ../../packages/core/dist/chunk-FJKE7WIF.js
491
+ // ../../packages/core/dist/chunk-POL7B3EM.js
492
492
  function spokenLineField(label, description) {
493
493
  return { type: "text", label, maxLength: SPOKEN_LINE_MAX_CHARS, default: "", description };
494
494
  }
@@ -498,8 +498,8 @@ function byLowercaseName(a, b) {
498
498
  return x < y ? -1 : x > y ? 1 : 0;
499
499
  }
500
500
  var CALLER_LANGUAGE, TTS_VOICE_REPLY_ENABLED_FIELD, COPILOT_TRIGGER_FIELD, AUDIO_LANGUAGE_OPTIONS, whatsapp, instagram, resend, telegram, API_CHANNEL_DELIVERY_EVENTS, apiChannel, OPENAI_REASONING_MODELS, openai, anthropic, googleAiStudio, openRouter, xai, groqStt, openaiStt, elevenLabsStt, openaiTts, groqTts, elevenLabsTts, GEMINI_TTS_VOICES, googleTts, wayai, externalResources, restApiTool, mcpServer, e2b, CLAUDE_HARNESS_MODELS, CLAUDE_HARNESS_MODEL_OPTIONS, HARNESS_MCP_SERVERS_FIELD, HARNESS_EGRESS_FIELDS, claudeAgentSdk, claudeManagedAgents, rekorMemory, SPOKEN_LINE_MAX_CHARS, gptLive, CONNECTORS;
501
- var init_chunk_FJKE7WIF = __esm({
502
- "../../packages/core/dist/chunk-FJKE7WIF.js"() {
501
+ var init_chunk_POL7B3EM = __esm({
502
+ "../../packages/core/dist/chunk-POL7B3EM.js"() {
503
503
  "use strict";
504
504
  CALLER_LANGUAGE = "caller";
505
505
  TTS_VOICE_REPLY_ENABLED_FIELD = {
@@ -680,7 +680,7 @@ var init_chunk_FJKE7WIF = __esm({
680
680
  token_refresh_config: { api_key: { strategy: "none" } },
681
681
  connector_description: "Start and continue hub conversations over REST; receive replies as signed webhooks."
682
682
  };
683
- OPENAI_REASONING_MODELS = ["gpt-6-sol", "gpt-6-astra", "gpt-6-luna", "gpt-5.6-sol", "gpt-5.6-terra", "gpt-5.6-luna", "gpt-5.5", "gpt-5.4", "gpt-5.4-mini", "gpt-5.4-nano", "gpt-5.2", "gpt-5.1", "gpt-5", "gpt-5-mini", "gpt-5-nano"];
683
+ OPENAI_REASONING_MODELS = ["gpt-6.1-sol", "gpt-6-sol", "gpt-6-astra", "gpt-6-luna", "gpt-5.6-sol", "gpt-5.6-terra", "gpt-5.6-luna", "gpt-5.5", "gpt-5.4", "gpt-5.4-mini", "gpt-5.4-nano", "gpt-5.2", "gpt-5.1", "gpt-5", "gpt-5-mini", "gpt-5-nano"];
684
684
  openai = {
685
685
  connector_id: "0cd6a292-895b-4667-b89e-dd298628c272",
686
686
  service_name: "Openai",
@@ -690,17 +690,17 @@ var init_chunk_FJKE7WIF = __esm({
690
690
  init_endpoint: null,
691
691
  unique_per_hub: true,
692
692
  account_sid_placeholder: "Enter email of the account",
693
- models: ["gpt-6-sol", "gpt-6-astra", "gpt-6-luna", "gpt-5.6-sol", "gpt-5.6-terra", "gpt-5.6-luna", "gpt-5.5", "gpt-5.4-mini", "gpt-5.4-nano", "gpt-5.4", "gpt-5.2", "gpt-5.2-chat-latest", "gpt-5.1", "gpt-5", "gpt-5-mini", "gpt-5-nano", "gpt-4.1", "gpt-4.1-mini"],
693
+ models: ["gpt-6.1-sol", "gpt-6-astra", "gpt-6-luna", "gpt-6-sol", "gpt-5.6-sol", "gpt-5.6-terra", "gpt-5.6-luna", "gpt-5.5", "gpt-5.4-mini", "gpt-5.4-nano", "gpt-5.4", "gpt-5.2", "gpt-5.2-chat-latest", "gpt-5.1", "gpt-5", "gpt-5-mini", "gpt-5-nano", "gpt-4.1", "gpt-4.1-mini"],
694
694
  is_internal: true,
695
695
  is_harness: false,
696
696
  connector_module: "agent",
697
697
  enabled: true,
698
698
  connector_settings_schema: null,
699
699
  agent_settings_schema: {
700
- model: { type: "select", label: "Model", allowCustomValue: true, options: [{ value: "gpt-6-sol", label: "GPT-6 Sol", deprecated: false }, { value: "gpt-6-astra", label: "GPT-6 Astra", deprecated: false }, { value: "gpt-6-luna", label: "GPT-6 Luna", deprecated: false }, { value: "gpt-5.6-sol", label: "GPT-5.6 Sol (Legacy)", deprecated: true }, { value: "gpt-5.6-terra", label: "GPT-5.6 Terra (Legacy)", deprecated: true }, { value: "gpt-5.6-luna", label: "GPT-5.6 Luna (Legacy)", deprecated: true }, { value: "gpt-5.5", label: "GPT-5.5 (Legacy)", deprecated: true }, { value: "gpt-5.4-mini", label: "GPT-5.4 Mini (Legacy)", deprecated: true }, { value: "gpt-5.4-nano", label: "GPT-5.4 Nano (Legacy)", deprecated: true }, { value: "gpt-5.4", label: "GPT-5.4 (Legacy)", deprecated: true }, { value: "gpt-5.2", label: "GPT-5.2 (Legacy)", deprecated: true }, { value: "gpt-5.2-chat-latest", label: "GPT-5.2 Chat (Legacy)", deprecated: true }, { value: "gpt-5.1", label: "GPT-5.1 (Legacy)", deprecated: true }, { value: "gpt-5", label: "GPT-5 (Legacy)", deprecated: true }, { value: "gpt-5-mini", label: "GPT-5 Mini (Legacy)", deprecated: true }, { value: "gpt-5-nano", label: "GPT-5 Nano (Legacy)", deprecated: true }, { value: "gpt-4.1", label: "GPT-4.1 (Legacy)", deprecated: true }, { value: "gpt-4.1-mini", label: "GPT-4.1 Mini (Legacy)", deprecated: true }], default: "gpt-6-sol", description: "AI model to use", required: true },
700
+ model: { type: "select", label: "Model", allowCustomValue: true, options: [{ value: "gpt-6.1-sol", label: "GPT-6.1 Sol", deprecated: false }, { value: "gpt-6-astra", label: "GPT-6 Astra", deprecated: false }, { value: "gpt-6-luna", label: "GPT-6 Luna", deprecated: false }, { value: "gpt-6-sol", label: "GPT-6 Sol (Legacy)", deprecated: true }, { value: "gpt-5.6-sol", label: "GPT-5.6 Sol (Legacy)", deprecated: true }, { value: "gpt-5.6-terra", label: "GPT-5.6 Terra (Legacy)", deprecated: true }, { value: "gpt-5.6-luna", label: "GPT-5.6 Luna (Legacy)", deprecated: true }, { value: "gpt-5.5", label: "GPT-5.5 (Legacy)", deprecated: true }, { value: "gpt-5.4-mini", label: "GPT-5.4 Mini (Legacy)", deprecated: true }, { value: "gpt-5.4-nano", label: "GPT-5.4 Nano (Legacy)", deprecated: true }, { value: "gpt-5.4", label: "GPT-5.4 (Legacy)", deprecated: true }, { value: "gpt-5.2", label: "GPT-5.2 (Legacy)", deprecated: true }, { value: "gpt-5.2-chat-latest", label: "GPT-5.2 Chat (Legacy)", deprecated: true }, { value: "gpt-5.1", label: "GPT-5.1 (Legacy)", deprecated: true }, { value: "gpt-5", label: "GPT-5 (Legacy)", deprecated: true }, { value: "gpt-5-mini", label: "GPT-5 Mini (Legacy)", deprecated: true }, { value: "gpt-5-nano", label: "GPT-5 Nano (Legacy)", deprecated: true }, { value: "gpt-4.1", label: "GPT-4.1 (Legacy)", deprecated: true }, { value: "gpt-4.1-mini", label: "GPT-4.1 Mini (Legacy)", deprecated: true }], default: "gpt-6.1-sol", description: "AI model to use", required: true },
701
701
  temperature: { type: "slider", label: "Temperature", min: 0, max: 2, default: 0.7, step: 0.01, description: "Controls randomness (0=focused, 2=creative). Only for non-reasoning models.", dependsOn: { field: "model", values: ["gpt-5.2-chat-latest", "gpt-4.1-mini", "gpt-4.1"] } },
702
702
  top_p: { type: "slider", label: "Top P", min: 0, max: 1, default: 1, step: 0.01, description: "Nucleus sampling parameter. Only for non-reasoning models.", dependsOn: { field: "model", values: ["gpt-5.2-chat-latest", "gpt-4.1-mini", "gpt-4.1"] } },
703
- reasoning_effort: { type: "select", label: "Reasoning Effort", options: [{ value: "minimal", label: "minimal", deprecated: true }, "low", "medium", "high", "xhigh", "max", "none"], default: "medium", description: "How much effort the model spends reasoning. Higher effort = more tokens & time. Set to none for fastest responses. xhigh requires gpt-5.2 or newer; max requires gpt-5.6 or newer; on older models each is clamped down to the highest supported level. GPT-6 Astra has no none level \u2014 none runs it at low. minimal is a legacy level only gpt-5 / gpt-5.1 accept \u2014 it is clamped to low on gpt-5.2 and newer.", dependsOn: { field: "model", values: OPENAI_REASONING_MODELS } },
703
+ reasoning_effort: { type: "select", label: "Reasoning Effort", options: [{ value: "minimal", label: "minimal", deprecated: true }, "low", "medium", "high", "xhigh", "max", "none"], default: "medium", description: "How much effort the model spends reasoning. Higher effort = more tokens & time. Set to none for fastest responses. xhigh requires gpt-5.2 or newer; max requires gpt-5.6 or newer; on older models each is clamped down to the highest supported level. GPT-6 Astra and GPT-6.1 Sol have no none level \u2014 none runs them at low. minimal is a legacy level only gpt-5 / gpt-5.1 accept \u2014 it is clamped to low on gpt-5.2 and newer.", dependsOn: { field: "model", values: OPENAI_REASONING_MODELS } },
704
704
  verbosity: { type: "select", label: "Verbosity", options: ["low", "medium", "high"], default: "medium", description: "Output detail level. Only for reasoning models.", dependsOn: { field: "model", values: OPENAI_REASONING_MODELS } },
705
705
  service_tier: { type: "select", label: "Service Tier", options: ["auto", "flex", "default", "priority"], default: "auto", description: "Service tier (flex=50% cheaper, higher latency). Only for reasoning models.", dependsOn: { field: "model", values: OPENAI_REASONING_MODELS } },
706
706
  max_tokens: { type: "number", label: "Max Tokens", min: 1, default: 4096, description: "Maximum tokens to generate. On reasoning models, this cap includes reasoning tokens." },
@@ -731,18 +731,18 @@ var init_chunk_FJKE7WIF = __esm({
731
731
  init_endpoint: null,
732
732
  unique_per_hub: true,
733
733
  account_sid_placeholder: "Enter email of the account",
734
- models: ["claude-fable-5-1", "claude-opus-5-5", "claude-sonnet-5", "claude-haiku-4-5", "claude-fable-5", "claude-opus-4-8", "claude-opus-4-7", "claude-sonnet-4-6", "claude-sonnet-4-5", "claude-opus-4-6", "claude-opus-4-5"],
734
+ models: ["claude-fable-5-1", "claude-opus-5-5", "claude-sonnet-5-5", "claude-haiku-5-5", "claude-fable-5", "claude-sonnet-5", "claude-haiku-4-5", "claude-opus-4-8", "claude-opus-4-7", "claude-sonnet-4-6", "claude-sonnet-4-5", "claude-opus-4-6", "claude-opus-4-5"],
735
735
  is_internal: true,
736
736
  is_harness: false,
737
737
  connector_module: "agent",
738
738
  enabled: true,
739
739
  connector_settings_schema: null,
740
740
  agent_settings_schema: {
741
- model: { type: "select", label: "Model", allowCustomValue: true, options: [{ value: "claude-fable-5-1", label: "Claude Fable 5.1", deprecated: false }, { value: "claude-opus-5-5", label: "Claude Opus 5.5", deprecated: false }, { value: "claude-sonnet-5", label: "Claude Sonnet 5", deprecated: false }, { value: "claude-haiku-4-5", label: "Claude Haiku 4.5", deprecated: false }, { value: "claude-fable-5", label: "Claude Fable 5 (Legacy)", deprecated: true }, { value: "claude-opus-4-8", label: "Claude Opus 4.8 (Legacy)", deprecated: true }, { value: "claude-opus-4-7", label: "Claude Opus 4.7 (Legacy)", deprecated: true }, { value: "claude-sonnet-4-6", label: "Claude Sonnet 4.6 (Legacy)", deprecated: true }, { value: "claude-sonnet-4-5", label: "Claude Sonnet 4.5 (Legacy)", deprecated: true }, { value: "claude-opus-4-6", label: "Claude Opus 4.6 (Legacy)", deprecated: true }, { value: "claude-opus-4-5", label: "Claude Opus 4.5 (Legacy)", deprecated: true }], default: "claude-sonnet-5", description: "Claude model to use", required: true },
741
+ model: { type: "select", label: "Model", allowCustomValue: true, options: [{ value: "claude-fable-5-1", label: "Claude Fable 5.1", deprecated: false }, { value: "claude-opus-5-5", label: "Claude Opus 5.5", deprecated: false }, { value: "claude-sonnet-5-5", label: "Claude Sonnet 5.5", deprecated: false }, { value: "claude-haiku-5-5", label: "Claude Haiku 5.5", deprecated: false }, { value: "claude-fable-5", label: "Claude Fable 5 (Legacy)", deprecated: true }, { value: "claude-sonnet-5", label: "Claude Sonnet 5 (Legacy)", deprecated: true }, { value: "claude-haiku-4-5", label: "Claude Haiku 4.5 (Legacy)", deprecated: true }, { value: "claude-opus-4-8", label: "Claude Opus 4.8 (Legacy)", deprecated: true }, { value: "claude-opus-4-7", label: "Claude Opus 4.7 (Legacy)", deprecated: true }, { value: "claude-sonnet-4-6", label: "Claude Sonnet 4.6 (Legacy)", deprecated: true }, { value: "claude-sonnet-4-5", label: "Claude Sonnet 4.5 (Legacy)", deprecated: true }, { value: "claude-opus-4-6", label: "Claude Opus 4.6 (Legacy)", deprecated: true }, { value: "claude-opus-4-5", label: "Claude Opus 4.5 (Legacy)", deprecated: true }], default: "claude-sonnet-5-5", description: "Claude model to use", required: true },
742
742
  temperature: { type: "slider", label: "Temperature", min: 0, max: 1, default: 1, step: 0.01, description: "Controls randomness (0=focused, 1=creative)" },
743
743
  max_tokens: { type: "number", label: "Max Tokens", min: 1, max: 8192, default: 4096, description: "Maximum tokens to generate", required: true },
744
- thinking_enabled: { type: "toggle", label: "Extended Thinking", default: false, description: "Enable Claude extended thinking for deeper reasoning. Uses output tokens; temperature/top_p are ignored when on. Not shown for Claude Fable and Claude Opus 5.5, which always reason adaptively.", dependsOn: { field: "model", values: ["claude-opus-4-8", "claude-opus-4-7", "claude-opus-4-6", "claude-sonnet-5", "claude-sonnet-4-6", "claude-sonnet-4-5", "claude-haiku-4-5", "claude-opus-4-5"] } },
745
- effort: { type: "select", label: "Reasoning Effort", options: [{ value: "low", label: "Low" }, { value: "medium", label: "Medium" }, { value: "high", label: "High" }, { value: "xhigh", label: "Extra high" }, { value: "max", label: "Max" }], default: "high", description: "How hard Claude reasons and how many tokens it spends overall (output_config.effort). Higher = better quality, more cost/latency. xhigh needs Opus 4.7+/Sonnet 5/Fable; max excludes Opus 4.5. Levels the chosen model does not support are clamped down to the highest it allows.", dependsOn: { field: "model", values: ["claude-fable-5-1", "claude-opus-5-5", "claude-fable-5", "claude-opus-4-8", "claude-opus-4-7", "claude-opus-4-6", "claude-opus-4-5", "claude-sonnet-5", "claude-sonnet-4-6"] } },
744
+ thinking_enabled: { type: "toggle", label: "Extended Thinking", default: false, description: "Enable Claude extended thinking for deeper reasoning. Uses output tokens; temperature/top_p are ignored when on. Not shown for Claude Fable and Claude Opus 5.5, which always reason adaptively. On Claude Sonnet 5.5 and Claude Haiku 5.5, off applies at Reasoning Effort High or below; at Extra high or Max they keep thinking.", dependsOn: { field: "model", values: ["claude-sonnet-5-5", "claude-haiku-5-5", "claude-opus-4-8", "claude-opus-4-7", "claude-opus-4-6", "claude-sonnet-5", "claude-sonnet-4-6", "claude-sonnet-4-5", "claude-haiku-4-5", "claude-opus-4-5"] } },
745
+ effort: { type: "select", label: "Reasoning Effort", options: [{ value: "low", label: "Low" }, { value: "medium", label: "Medium" }, { value: "high", label: "High" }, { value: "xhigh", label: "Extra high" }, { value: "max", label: "Max" }], default: "high", description: "How hard Claude reasons and how many tokens it spends overall (output_config.effort). Higher = better quality, more cost/latency. xhigh needs Opus 4.7+/Sonnet 5+/Haiku 5.5/Fable; max excludes Opus 4.5. Levels the chosen model does not support are clamped down to the highest it allows.", dependsOn: { field: "model", values: ["claude-fable-5-1", "claude-opus-5-5", "claude-sonnet-5-5", "claude-haiku-5-5", "claude-fable-5", "claude-opus-4-8", "claude-opus-4-7", "claude-opus-4-6", "claude-opus-4-5", "claude-sonnet-5", "claude-sonnet-4-6"] } },
746
746
  code_execution_enabled: { type: "toggle", label: "Code Execution Sandbox", default: false, description: "Allow this agent to use the Anthropic code_execution sandbox for the download_file/upload_file tools. Off keeps the agent read-only on resources even if the tools are attached." },
747
747
  cache_ttl: { type: "select", label: "System Prompt Cache TTL", options: [{ value: "1h", label: "1 hour (recommended)" }, { value: "5m", label: "5 minutes" }, { value: "off", label: "Disabled" }], default: "1h", description: "Caches system prompt and tool definitions (shared across all conversations on this agent). 1h amortizes the 2\xD7 write premium across concurrent conversations." },
748
748
  cache_ttl_history: { type: "select", label: "Conversation History Cache TTL", options: [{ value: "5m", label: "5 minutes (recommended)" }, { value: "1h", label: "1 hour" }, { value: "off", label: "Disabled" }], default: "5m", description: "Caches per-conversation history. Primary readers are tool-loop iterations (seconds apart) \u2014 5m captures these at 1.25\xD7 write premium instead of 2\xD7. Use 1h only if conversations frequently re-engage between 5min\u20131h." },
@@ -812,14 +812,14 @@ var init_chunk_FJKE7WIF = __esm({
812
812
  // Jev Latest is the bare `jev-latest`: OpenRouter's decisions endpoint refuses
813
813
  // `typesafe/jev-latest` (#4486). `decisions-completion.test.ts` holds every
814
814
  // decisions model offered here to an id that endpoint was measured to serve.
815
- models: ["openai/gpt-6-sol", "openai/gpt-6-astra", "openai/gpt-6-luna", "anthropic/claude-fable-5-1", "anthropic/claude-opus-5-5", "anthropic/claude-sonnet-5", "anthropic/claude-haiku-4-5", "google/gemini-3.1-pro-preview", "google/gemini-3.8-flash", "google/gemini-3.5-flash-lite", "google/gemini-3.1-flash-lite", "x-ai/grok-4.7", "x-ai/grok-4.6", "x-ai/grok-4.5", "x-ai/grok-4.3", "deepseek/deepseek-v4-pro", "deepseek/deepseek-v4.1-flash", "minimax/minimax-m3", "moonshotai/kimi-k3", "z-ai/glm-5.3", "z-ai/glm-5-turbo", "qwen/qwen3.8-max", "qwen/qwen3.7-plus", "qwen/qwen3-coder", "xiaomi/mimo-v2.6-pro", "jev-latest", "typesafe/jev-1.13", "openai/gpt-5.6-sol", "openai/gpt-5.6-terra", "openai/gpt-5.6-luna", "openai/gpt-5.5", "openai/gpt-5.4-mini", "openai/gpt-5.4-nano", "openai/gpt-5.4", "openai/gpt-5.2", "openai/gpt-5.2-chat-latest", "openai/gpt-5.1", "openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5-nano", "openai/gpt-4.1", "openai/gpt-4.1-mini", "anthropic/claude-fable-5", "anthropic/claude-opus-4-8", "anthropic/claude-opus-4-7", "anthropic/claude-sonnet-4-6", "anthropic/claude-sonnet-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4.1", "google/gemini-3.5-flash", "google/gemini-3.1-flash", "google/gemini-3-pro", "google/gemini-3-flash-preview", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "x-ai/grok-4.20", "x-ai/grok-4.1", "x-ai/grok-4-heavy", "x-ai/grok-4-fast", "x-ai/grok-4", "deepseek/deepseek-v3.2", "minimax/minimax-m2.7", "moonshotai/kimi-k2.6", "moonshotai/kimi-k2.5", "z-ai/glm-5.1", "z-ai/glm-5", "qwen/qwen3.7-max", "qwen/qwen3.6-plus", "xiaomi/mimo-v2.5-pro", "xiaomi/mimo-v2-pro"],
815
+ models: ["openai/gpt-6.1-sol", "openai/gpt-6-astra", "openai/gpt-6-luna", "anthropic/claude-fable-5-1", "anthropic/claude-opus-5-5", "anthropic/claude-sonnet-5-5", "anthropic/claude-haiku-5-5", "google/gemini-3.1-pro-preview", "google/gemini-3.8-flash", "google/gemini-3.5-flash-lite", "google/gemini-3.1-flash-lite", "x-ai/grok-4.7", "x-ai/grok-4.6", "x-ai/grok-4.5", "x-ai/grok-4.3", "deepseek/deepseek-v4-pro", "deepseek/deepseek-v4.1-flash", "minimax/minimax-m3", "moonshotai/kimi-k3", "z-ai/glm-5.3", "z-ai/glm-5-turbo", "qwen/qwen3.8-max", "qwen/qwen3.7-plus", "qwen/qwen3-coder", "xiaomi/mimo-v2.6-pro", "jev-latest", "typesafe/jev-1.13", "openai/gpt-6-sol", "openai/gpt-5.6-sol", "openai/gpt-5.6-terra", "openai/gpt-5.6-luna", "openai/gpt-5.5", "openai/gpt-5.4-mini", "openai/gpt-5.4-nano", "openai/gpt-5.4", "openai/gpt-5.2", "openai/gpt-5.2-chat-latest", "openai/gpt-5.1", "openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5-nano", "openai/gpt-4.1", "openai/gpt-4.1-mini", "anthropic/claude-fable-5", "anthropic/claude-sonnet-5", "anthropic/claude-haiku-4-5", "anthropic/claude-opus-4-8", "anthropic/claude-opus-4-7", "anthropic/claude-sonnet-4-6", "anthropic/claude-sonnet-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4.1", "google/gemini-3.5-flash", "google/gemini-3.1-flash", "google/gemini-3-pro", "google/gemini-3-flash-preview", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "x-ai/grok-4.20", "x-ai/grok-4.1", "x-ai/grok-4-heavy", "x-ai/grok-4-fast", "x-ai/grok-4", "deepseek/deepseek-v3.2", "minimax/minimax-m2.7", "moonshotai/kimi-k2.6", "moonshotai/kimi-k2.5", "z-ai/glm-5.1", "z-ai/glm-5", "qwen/qwen3.7-max", "qwen/qwen3.6-plus", "xiaomi/mimo-v2.5-pro", "xiaomi/mimo-v2-pro"],
816
816
  is_internal: true,
817
817
  is_harness: false,
818
818
  connector_module: "agent",
819
819
  enabled: true,
820
820
  connector_settings_schema: null,
821
821
  agent_settings_schema: {
822
- model: { type: "select", label: "Model", allowCustomValue: true, options: [{ value: "openai/gpt-6-sol", label: "GPT-6 Sol", deprecated: false }, { value: "openai/gpt-6-astra", label: "GPT-6 Astra", deprecated: false }, { value: "openai/gpt-6-luna", label: "GPT-6 Luna", deprecated: false }, { value: "anthropic/claude-fable-5-1", label: "Claude Fable 5.1", deprecated: false }, { value: "anthropic/claude-opus-5-5", label: "Claude Opus 5.5", deprecated: false }, { value: "anthropic/claude-sonnet-5", label: "Claude Sonnet 5", deprecated: false }, { value: "anthropic/claude-haiku-4-5", label: "Claude Haiku 4.5", deprecated: false }, { value: "google/gemini-3.1-pro-preview", label: "Gemini 3.1 Pro (Preview)", deprecated: false }, { value: "google/gemini-3.8-flash", label: "Gemini 3.8 Flash", deprecated: false }, { value: "google/gemini-3.5-flash-lite", label: "Gemini 3.5 Flash-Lite", deprecated: false }, { value: "google/gemini-3.1-flash-lite", label: "Gemini 3.1 Flash-Lite", deprecated: false }, { value: "x-ai/grok-4.7", label: "Grok 4.7", deprecated: false }, { value: "x-ai/grok-4.6", label: "Grok 4.6", deprecated: false }, { value: "x-ai/grok-4.5", label: "Grok 4.5", deprecated: false }, { value: "x-ai/grok-4.3", label: "Grok 4.3", deprecated: false }, { value: "deepseek/deepseek-v4-pro", label: "DeepSeek V4 Pro", deprecated: false }, { value: "deepseek/deepseek-v4.1-flash", label: "DeepSeek V4.1 Flash", deprecated: false }, { value: "minimax/minimax-m3", label: "MiniMax M3", deprecated: false }, { value: "moonshotai/kimi-k3", label: "Kimi K3", deprecated: false }, { value: "z-ai/glm-5.3", label: "GLM-5.3", deprecated: false }, { value: "z-ai/glm-5-turbo", label: "GLM-5-Turbo", deprecated: false }, { value: "qwen/qwen3.8-max", label: "Qwen3.8 Max", deprecated: false }, { value: "qwen/qwen3.7-plus", label: "Qwen3.7 Plus", deprecated: false }, { value: "qwen/qwen3-coder", label: "Qwen3 Coder", deprecated: false }, { value: "xiaomi/mimo-v2.6-pro", label: "MiMo-V2.6-Pro", deprecated: false }, { value: "jev-latest", label: "Jev Latest (decisions)", deprecated: false }, { value: "typesafe/jev-1.13", label: "Jev 1.13 (decisions)", deprecated: false }, { value: "openai/gpt-5.6-sol", label: "GPT-5.6 Sol (Legacy)", deprecated: true }, { value: "openai/gpt-5.6-terra", label: "GPT-5.6 Terra (Legacy)", deprecated: true }, { value: "openai/gpt-5.6-luna", label: "GPT-5.6 Luna (Legacy)", deprecated: true }, { value: "openai/gpt-5.5", label: "GPT-5.5 (Legacy)", deprecated: true }, { value: "openai/gpt-5.4-mini", label: "GPT-5.4 Mini (Legacy)", deprecated: true }, { value: "openai/gpt-5.4-nano", label: "GPT-5.4 Nano (Legacy)", deprecated: true }, { value: "openai/gpt-5.4", label: "GPT-5.4 (Legacy)", deprecated: true }, { value: "openai/gpt-5.2", label: "GPT-5.2 (Legacy)", deprecated: true }, { value: "openai/gpt-5.2-chat-latest", label: "GPT-5.2 Chat (Legacy)", deprecated: true }, { value: "openai/gpt-5.1", label: "GPT-5.1 (Legacy)", deprecated: true }, { value: "openai/gpt-5", label: "GPT-5 (Legacy)", deprecated: true }, { value: "openai/gpt-5-mini", label: "GPT-5 Mini (Legacy)", deprecated: true }, { value: "openai/gpt-5-nano", label: "GPT-5 Nano (Legacy)", deprecated: true }, { value: "openai/gpt-4.1", label: "GPT-4.1 (Legacy)", deprecated: true }, { value: "openai/gpt-4.1-mini", label: "GPT-4.1 Mini (Legacy)", deprecated: true }, { value: "anthropic/claude-fable-5", label: "Claude Fable 5 (Legacy)", deprecated: true }, { value: "anthropic/claude-opus-4-8", label: "Claude Opus 4.8 (Legacy)", deprecated: true }, { value: "anthropic/claude-opus-4-7", label: "Claude Opus 4.7 (Legacy)", deprecated: true }, { value: "anthropic/claude-sonnet-4-6", label: "Claude Sonnet 4.6 (Legacy)", deprecated: true }, { value: "anthropic/claude-sonnet-4-5", label: "Claude Sonnet 4.5 (Legacy)", deprecated: true }, { value: "anthropic/claude-opus-4-6", label: "Claude Opus 4.6 (Legacy)", deprecated: true }, { value: "anthropic/claude-opus-4-5", label: "Claude Opus 4.5 (Legacy)", deprecated: true }, { value: "anthropic/claude-opus-4.1", label: "Claude Opus 4.1 (Legacy)", deprecated: true }, { value: "google/gemini-3.5-flash", label: "Gemini 3.5 Flash (Legacy)", deprecated: true }, { value: "google/gemini-3.1-flash", label: "Gemini 3.1 Flash (Legacy)", deprecated: true }, { value: "google/gemini-3-pro", label: "Gemini 3 Pro (Legacy)", deprecated: true }, { value: "google/gemini-3-flash-preview", label: "Gemini 3 Flash (Legacy)", deprecated: true }, { value: "google/gemini-2.5-pro", label: "Gemini 2.5 Pro (Legacy)", deprecated: true }, { value: "google/gemini-2.5-flash", label: "Gemini 2.5 Flash (Legacy)", deprecated: true }, { value: "google/gemini-2.5-flash-lite", label: "Gemini 2.5 Flash-Lite (Legacy)", deprecated: true }, { value: "x-ai/grok-4.20", label: "Grok 4.20 (Legacy)", deprecated: true }, { value: "x-ai/grok-4.1", label: "Grok 4.1 (Legacy)", deprecated: true }, { value: "x-ai/grok-4-heavy", label: "Grok 4 Heavy (Legacy)", deprecated: true }, { value: "x-ai/grok-4-fast", label: "Grok 4 Fast (Legacy)", deprecated: true }, { value: "x-ai/grok-4", label: "Grok 4 (Legacy)", deprecated: true }, { value: "deepseek/deepseek-v3.2", label: "DeepSeek V3.2 (Legacy)", deprecated: true }, { value: "minimax/minimax-m2.7", label: "MiniMax M2.7 (Legacy)", deprecated: true }, { value: "moonshotai/kimi-k2.6", label: "Kimi K2.6 (Legacy)", deprecated: true }, { value: "moonshotai/kimi-k2.5", label: "Kimi K2.5 (Legacy)", deprecated: true }, { value: "z-ai/glm-5.1", label: "GLM-5.1 (Legacy)", deprecated: true }, { value: "z-ai/glm-5", label: "GLM-5 (Legacy)", deprecated: true }, { value: "qwen/qwen3.7-max", label: "Qwen3.7 Max (Legacy)", deprecated: true }, { value: "qwen/qwen3.6-plus", label: "Qwen3.6 Plus (Legacy)", deprecated: true }, { value: "xiaomi/mimo-v2.5-pro", label: "MiMo-V2.5-Pro (Legacy)", deprecated: true }, { value: "xiaomi/mimo-v2-pro", label: "MiMo-V2-Pro (Legacy)", deprecated: true }], default: "openai/gpt-6-sol", description: "AI model to use", required: true },
822
+ model: { type: "select", label: "Model", allowCustomValue: true, options: [{ value: "openai/gpt-6.1-sol", label: "GPT-6.1 Sol", deprecated: false }, { value: "openai/gpt-6-astra", label: "GPT-6 Astra", deprecated: false }, { value: "openai/gpt-6-luna", label: "GPT-6 Luna", deprecated: false }, { value: "anthropic/claude-fable-5-1", label: "Claude Fable 5.1", deprecated: false }, { value: "anthropic/claude-opus-5-5", label: "Claude Opus 5.5", deprecated: false }, { value: "anthropic/claude-sonnet-5-5", label: "Claude Sonnet 5.5", deprecated: false }, { value: "anthropic/claude-haiku-5-5", label: "Claude Haiku 5.5", deprecated: false }, { value: "google/gemini-3.1-pro-preview", label: "Gemini 3.1 Pro (Preview)", deprecated: false }, { value: "google/gemini-3.8-flash", label: "Gemini 3.8 Flash", deprecated: false }, { value: "google/gemini-3.5-flash-lite", label: "Gemini 3.5 Flash-Lite", deprecated: false }, { value: "google/gemini-3.1-flash-lite", label: "Gemini 3.1 Flash-Lite", deprecated: false }, { value: "x-ai/grok-4.7", label: "Grok 4.7", deprecated: false }, { value: "x-ai/grok-4.6", label: "Grok 4.6", deprecated: false }, { value: "x-ai/grok-4.5", label: "Grok 4.5", deprecated: false }, { value: "x-ai/grok-4.3", label: "Grok 4.3", deprecated: false }, { value: "deepseek/deepseek-v4-pro", label: "DeepSeek V4 Pro", deprecated: false }, { value: "deepseek/deepseek-v4.1-flash", label: "DeepSeek V4.1 Flash", deprecated: false }, { value: "minimax/minimax-m3", label: "MiniMax M3", deprecated: false }, { value: "moonshotai/kimi-k3", label: "Kimi K3", deprecated: false }, { value: "z-ai/glm-5.3", label: "GLM-5.3", deprecated: false }, { value: "z-ai/glm-5-turbo", label: "GLM-5-Turbo", deprecated: false }, { value: "qwen/qwen3.8-max", label: "Qwen3.8 Max", deprecated: false }, { value: "qwen/qwen3.7-plus", label: "Qwen3.7 Plus", deprecated: false }, { value: "qwen/qwen3-coder", label: "Qwen3 Coder", deprecated: false }, { value: "xiaomi/mimo-v2.6-pro", label: "MiMo-V2.6-Pro", deprecated: false }, { value: "jev-latest", label: "Jev Latest (decisions)", deprecated: false }, { value: "typesafe/jev-1.13", label: "Jev 1.13 (decisions)", deprecated: false }, { value: "openai/gpt-6-sol", label: "GPT-6 Sol (Legacy)", deprecated: true }, { value: "openai/gpt-5.6-sol", label: "GPT-5.6 Sol (Legacy)", deprecated: true }, { value: "openai/gpt-5.6-terra", label: "GPT-5.6 Terra (Legacy)", deprecated: true }, { value: "openai/gpt-5.6-luna", label: "GPT-5.6 Luna (Legacy)", deprecated: true }, { value: "openai/gpt-5.5", label: "GPT-5.5 (Legacy)", deprecated: true }, { value: "openai/gpt-5.4-mini", label: "GPT-5.4 Mini (Legacy)", deprecated: true }, { value: "openai/gpt-5.4-nano", label: "GPT-5.4 Nano (Legacy)", deprecated: true }, { value: "openai/gpt-5.4", label: "GPT-5.4 (Legacy)", deprecated: true }, { value: "openai/gpt-5.2", label: "GPT-5.2 (Legacy)", deprecated: true }, { value: "openai/gpt-5.2-chat-latest", label: "GPT-5.2 Chat (Legacy)", deprecated: true }, { value: "openai/gpt-5.1", label: "GPT-5.1 (Legacy)", deprecated: true }, { value: "openai/gpt-5", label: "GPT-5 (Legacy)", deprecated: true }, { value: "openai/gpt-5-mini", label: "GPT-5 Mini (Legacy)", deprecated: true }, { value: "openai/gpt-5-nano", label: "GPT-5 Nano (Legacy)", deprecated: true }, { value: "openai/gpt-4.1", label: "GPT-4.1 (Legacy)", deprecated: true }, { value: "openai/gpt-4.1-mini", label: "GPT-4.1 Mini (Legacy)", deprecated: true }, { value: "anthropic/claude-fable-5", label: "Claude Fable 5 (Legacy)", deprecated: true }, { value: "anthropic/claude-sonnet-5", label: "Claude Sonnet 5 (Legacy)", deprecated: true }, { value: "anthropic/claude-haiku-4-5", label: "Claude Haiku 4.5 (Legacy)", deprecated: true }, { value: "anthropic/claude-opus-4-8", label: "Claude Opus 4.8 (Legacy)", deprecated: true }, { value: "anthropic/claude-opus-4-7", label: "Claude Opus 4.7 (Legacy)", deprecated: true }, { value: "anthropic/claude-sonnet-4-6", label: "Claude Sonnet 4.6 (Legacy)", deprecated: true }, { value: "anthropic/claude-sonnet-4-5", label: "Claude Sonnet 4.5 (Legacy)", deprecated: true }, { value: "anthropic/claude-opus-4-6", label: "Claude Opus 4.6 (Legacy)", deprecated: true }, { value: "anthropic/claude-opus-4-5", label: "Claude Opus 4.5 (Legacy)", deprecated: true }, { value: "anthropic/claude-opus-4.1", label: "Claude Opus 4.1 (Legacy)", deprecated: true }, { value: "google/gemini-3.5-flash", label: "Gemini 3.5 Flash (Legacy)", deprecated: true }, { value: "google/gemini-3.1-flash", label: "Gemini 3.1 Flash (Legacy)", deprecated: true }, { value: "google/gemini-3-pro", label: "Gemini 3 Pro (Legacy)", deprecated: true }, { value: "google/gemini-3-flash-preview", label: "Gemini 3 Flash (Legacy)", deprecated: true }, { value: "google/gemini-2.5-pro", label: "Gemini 2.5 Pro (Legacy)", deprecated: true }, { value: "google/gemini-2.5-flash", label: "Gemini 2.5 Flash (Legacy)", deprecated: true }, { value: "google/gemini-2.5-flash-lite", label: "Gemini 2.5 Flash-Lite (Legacy)", deprecated: true }, { value: "x-ai/grok-4.20", label: "Grok 4.20 (Legacy)", deprecated: true }, { value: "x-ai/grok-4.1", label: "Grok 4.1 (Legacy)", deprecated: true }, { value: "x-ai/grok-4-heavy", label: "Grok 4 Heavy (Legacy)", deprecated: true }, { value: "x-ai/grok-4-fast", label: "Grok 4 Fast (Legacy)", deprecated: true }, { value: "x-ai/grok-4", label: "Grok 4 (Legacy)", deprecated: true }, { value: "deepseek/deepseek-v3.2", label: "DeepSeek V3.2 (Legacy)", deprecated: true }, { value: "minimax/minimax-m2.7", label: "MiniMax M2.7 (Legacy)", deprecated: true }, { value: "moonshotai/kimi-k2.6", label: "Kimi K2.6 (Legacy)", deprecated: true }, { value: "moonshotai/kimi-k2.5", label: "Kimi K2.5 (Legacy)", deprecated: true }, { value: "z-ai/glm-5.1", label: "GLM-5.1 (Legacy)", deprecated: true }, { value: "z-ai/glm-5", label: "GLM-5 (Legacy)", deprecated: true }, { value: "qwen/qwen3.7-max", label: "Qwen3.7 Max (Legacy)", deprecated: true }, { value: "qwen/qwen3.6-plus", label: "Qwen3.6 Plus (Legacy)", deprecated: true }, { value: "xiaomi/mimo-v2.5-pro", label: "MiMo-V2.5-Pro (Legacy)", deprecated: true }, { value: "xiaomi/mimo-v2-pro", label: "MiMo-V2-Pro (Legacy)", deprecated: true }], default: "openai/gpt-6.1-sol", description: "AI model to use", required: true },
823
823
  temperature: { type: "slider", label: "Temperature", min: 0, max: 2, default: 0.7, step: 0.01, description: "Controls randomness (0=focused, 2=creative)" },
824
824
  top_p: { type: "slider", label: "Top P", min: 0, max: 1, default: 1, step: 0.01, description: "Nucleus sampling parameter" },
825
825
  max_tokens: { type: "number", label: "Max Tokens", min: 1, default: 4096, description: "Maximum number of tokens to generate" },
@@ -1555,15 +1555,15 @@ var init_chunk_FJKE7WIF = __esm({
1555
1555
  }
1556
1556
  });
1557
1557
 
1558
- // ../../packages/core/dist/chunk-YX7EL2HJ.js
1558
+ // ../../packages/core/dist/chunk-SNA2DXAC.js
1559
1559
  function catalogToolSideEffects(toolName) {
1560
1560
  const sideEffects = CATALOG_SIDE_EFFECTS.get(toolName);
1561
1561
  if (sideEffects === void 0) return "unknown";
1562
1562
  return sideEffects ? "side_effects" : "none";
1563
1563
  }
1564
1564
  var NATIVE_TOOL_SCHEMAS, WAYAI_CONNECTOR, BASE_NATIVE_TOOLS, NATIVE_TOOLS, CATALOG_SIDE_EFFECTS;
1565
- var init_chunk_YX7EL2HJ = __esm({
1566
- "../../packages/core/dist/chunk-YX7EL2HJ.js"() {
1565
+ var init_chunk_SNA2DXAC = __esm({
1566
+ "../../packages/core/dist/chunk-SNA2DXAC.js"() {
1567
1567
  "use strict";
1568
1568
  NATIVE_TOOL_SCHEMAS = {
1569
1569
  "close_conversation": {
@@ -6587,7 +6587,7 @@ var init_zod = __esm({
6587
6587
  }
6588
6588
  });
6589
6589
 
6590
- // ../../packages/core/dist/chunk-XNDI2XQA.js
6590
+ // ../../packages/core/dist/chunk-3NS3HULK.js
6591
6591
  function visibleLength(s) {
6592
6592
  return s.replace(INVISIBLE_NAME_CHARS, "").length;
6593
6593
  }
@@ -6615,8 +6615,8 @@ function ensureUniqueSlug(slug, used) {
6615
6615
  throw new Error(`slug collision space exhausted for "${slug}"`);
6616
6616
  }
6617
6617
  var SLUG_REGEX, slugSchema, INVISIBLE_NAME_CHARS;
6618
- var init_chunk_XNDI2XQA = __esm({
6619
- "../../packages/core/dist/chunk-XNDI2XQA.js"() {
6618
+ var init_chunk_3NS3HULK = __esm({
6619
+ "../../packages/core/dist/chunk-3NS3HULK.js"() {
6620
6620
  "use strict";
6621
6621
  init_zod();
6622
6622
  SLUG_REGEX = /^[a-z][a-z0-9_]{0,49}$/;
@@ -6882,10 +6882,10 @@ var init_chunk_T7KQKDET = __esm({
6882
6882
  }
6883
6883
  });
6884
6884
 
6885
- // ../../packages/core/dist/chunk-SSN6QPMX.js
6885
+ // ../../packages/core/dist/chunk-2ISUBJG7.js
6886
6886
  var EVAL_PACING_PRESET_NAMES, PACING_INTERVAL_MIN_MS, PACING_INTERVAL_MAX_MS, EVAL_MAX_RUNS_PER_SCENARIO, EVAL_RUN_DEADLINE_MIN_MS, EVAL_RUN_DEADLINE_MAX_MS;
6887
- var init_chunk_SSN6QPMX = __esm({
6888
- "../../packages/core/dist/chunk-SSN6QPMX.js"() {
6887
+ var init_chunk_2ISUBJG7 = __esm({
6888
+ "../../packages/core/dist/chunk-2ISUBJG7.js"() {
6889
6889
  "use strict";
6890
6890
  EVAL_PACING_PRESET_NAMES = ["conservative", "balanced", "fast", "custom"];
6891
6891
  PACING_INTERVAL_MIN_MS = 50;
@@ -6896,7 +6896,7 @@ var init_chunk_SSN6QPMX = __esm({
6896
6896
  }
6897
6897
  });
6898
6898
 
6899
- // ../../packages/core/dist/chunk-IYXLMIWU.js
6899
+ // ../../packages/core/dist/chunk-NCJ3EXN7.js
6900
6900
  function containsKanbanPlaceholders(value) {
6901
6901
  if (value == null) return false;
6902
6902
  const serialized = typeof value === "string" ? value : JSON.stringify(value);
@@ -8142,19 +8142,19 @@ function refineHubAsCodeMonitorRulesOutput(config, ctx) {
8142
8142
  }
8143
8143
  });
8144
8144
  }
8145
- var PLACEHOLDER_TOKENS, ALLOWED_TYPES, SUBSCHEMA_OBJECT_KEYWORDS, SUBSCHEMA_LIST_KEYWORDS, SUBSCHEMA_MAP_KEYWORDS, MAX_SCHEMA_DEPTH, uuidSchema, USER_ID_REGEX, timestampSchema, idParamSchema, clientOptionalString, clientOptionalBoolean, clientOptionalNumber, messageAttachment, MAX_MESSAGE_BODY_BYTES, MAX_ATTACHMENTS_PER_MESSAGE, MESSAGE_ENVELOPE_HEADROOM_BYTES, MAX_AUDIO_FILE_BASE64_BYTES, MAX_KANBAN_STATUSES, MAX_FOLLOWUPS_PER_STATUS, MAX_LANES, MAX_ADDITIONAL_CONTEXT_SCHEMA_BYTES, RESERVED_TEMPLATE_DUMP_NAME, kanbanStatusSlugSchema, followupTypeSchema, EVENT_RELATIVE_FOLLOWUP_TYPES, followupTimeUnitSchema, followupIdSchema, SELECTABLE_FOLLOWUP_TYPES, MAX_LINKED_FOLLOWUP_TARGETS_PER_STATUS, followupSchema, MAX_OUTCOMES_PER_STATUS, kanbanOutcomeSchema, EXCLUSIVE_FLAG_PAIRS, kanbanStatusSchema, kanbanStatusesArraySchema, laneSchema, lanesArraySchema, toolIdParam, listToolsQuery, toolAgentQuery, deleteToolQuery, toolConnectionsQuery, nativeToolIdSchema, CONTEXT_BOUNDARIES, contextBoundarySchema, addNativeToolBody, addMcpToolBody, createCustomToolBody, updateCustomToolBody, updateToolExecutionConfigBody, PREVIOUS_CONVERSATIONS_MAX, NATIVE_TOOL_NAMES, previousConversationsCountField, summarizationThresholdField, flagConditionSchema, MONITOR_TRIGGERS, monitorTriggerSchema, MONITOR_FIRING_TRIGGERS, MONITOR_DELAY_SECONDS_MIN, MONITOR_IDLE_DELAY_REQUIRED_MESSAGE, MONITOR_HISTORY_MESSAGES_MAX, monitorHistoryMessagesSchema, monitorIncludeToolResultsSchema, MONITOR_INPUT_SHAPING_KEYS, MONITOR_INPUT_SHAPING_SCHEMAS, MONITOR_INPUT_SHAPING_IDLE_MESSAGE, monitorArgumentSourceSchema, MONITOR_NOTE_TEMPLATE_MAX, MONITOR_STEER_NOTE_MAX, monitorActionSchema, monitorRuleSchema, MONITOR_RULE_KEYS, MONITOR_RULE_SCHEMAS, MONITOR_RULE_TRIGGERS, MONITOR_RULE_TRIGGER_MESSAGE, CALL_UTTERANCE_SPEAKERS, callUtteranceSpeakerSchema, MONITOR_CALL_KEYS, MONITOR_CALL_SCHEMAS, MONITOR_CALL_KEY_MESSAGE, CALL_STEERING_MIN_CONFIDENCE, CALL_UTTERANCE_RULE_NOT_CONFIDENT_MESSAGE, CALL_UTTERANCE_FALLBACK_MESSAGE, CALL_UTTERANCE_FLAG_CONDITIONS_MESSAGE, CALL_STEER_NOTE_BLANK_MESSAGE, MONITOR_USER_MESSAGE_ACTION_KINDS, MONITOR_ASSISTANT_REPLY_ACTION_KINDS, MONITOR_CALL_UTTERANCE_ACTION_KINDS, INSERT_NOTE_TOOL_NAME, RUN_MONITOR_TOOL_NAME, MONITOR_RULE_ALLOWED_NATIVE_TOOLS, MONITOR_RULE_REENTRY_TOOLS, MONITOR_RULE_REENTRY_TRACKS, monitorConfigField, flagConditionsField, agentIdParam, listAgentsQuery, agentConnectionsQuery, createAgentBody, updateAgentBody, AGENT_PARAMETER_TYPES, AGENT_PARAMETER_NAME_REGEX, agentParameterCreateSchema, MAX_AGENT_PARAMETERS_PER_REQUEST, createAgentParametersBody, paginationSchema, evalIdParam, sessionIdParam, scenarioSetIdParam, hubIdQuery, evalDateContextSchema, EVAL_FIXTURE_NAME_MAX_LENGTH, evalFixtureOverrideSchema, runSessionQuery, runJourneyQuery, EVAL_INPUT_ROLES, EVAL_INPUT_ROLE_LIST, ROLE_ECHO_MAX, EVAL_INITIAL_STATE_SCOPES, MAX_INITIAL_STATE_ENTRIES, evalInitialStateEntry, evalBody, EVAL_LIST_MAX_LIMIT, evalListLimit, getEvalsQuery, toggleEvalBody, bulkToggleEvalsBody, pacingConfigSchema, EVAL_MAX_SELECTED_SCENARIOS, evalScenarioSelectionEntrySchema, evalScenarioSelectionSchema, sessionConfigSchema, createSessionBody, getSessionsQuery, getSessionResultsQuery, getSessionRunsQuery, evalAnalyticsQuery, getSessionCostQuery, compareSessionsQuery, evalsSqlBody, evalsSqlSchemaQuery, exportResultsQuery, validateEvalBody, hubAgentsQuery, createScenarioSetBody, updateScenarioSetBody, scenarioSetsHubQuery, createScenarioFromConversationBody, createJourneyFromConversationBody, EVAL_ATTACHMENT_HASH_REGEX, evalAttachmentRef, turnMayCarryAttachments, ATTACHMENTS_USER_ONLY_MESSAGE, journeyIdParam, journeyToolCallSchema, journeyTurnSchema, journeyStepOverrideSchema, fixtureField, createJourneyBody, updateJourneyBody, evalSessionConfigResponseSchema, evalSessionResponseSchema, evalSessionListConfigSchema, evalSessionListItemSchema, seedReleaseStatusSchema, EVAL_SESSION_NOT_QUIESCENT, MAX_RESOURCE_FILE_SIZE, CALL_OPENING_LANGUAGES, callOpeningLanguage, CALL_OPENING_MAX_DURATION_MS, CALL_OPENING_MAX_BYTES, CALL_OPENING_CAPTION_MAX_CHARS, CALL_OPENING_CONTENT_TYPES, callOpeningContentType, CALL_OPENING_HASH_REGEX, callOpeningHash, callOpeningCaption, storedCallOpening, MAX_CALL_OPENING_ENCODED_BYTES, MAX_CALL_OPENING_BODY_BYTES, agentCallOpeningParams, putAgentCallOpeningBody, deleteAgentCallOpeningQuery, callOpeningParam, callOpeningQuery, MAX_10MB_BASE64_ENCODED_BYTES, MAX_EVAL_ATTACHMENT_ENCODED_BYTES, MAX_EVAL_ATTACHMENT_CARRIERS, MAX_EVAL_ATTACHMENT_AGGREGATE_ENCODED_BYTES, MAX_RESOURCE_ENCODED_BYTES, MAX_HUB_AS_CODE_RESOURCES, MAX_HUB_AS_CODE_RESOURCE_FILES, MAX_RESOURCE_AGGREGATE_ENCODED_BYTES, MAX_CI_CONFIG_BODY_BYTES, MAX_CALL_OPENING_CARRIERS, MAX_CALL_OPENING_AGGREGATE_ENCODED_BYTES, hubAsCodeStateSchema, hubAsCodeResourceFileSchema, hubAsCodeResourceSchema, uuidPattern, ciUuidSchema, boundedHubAsCodeResourcesSchema, hubAsCodeConfigSchema, ciPullHubIdParam, ciBranchParam, ciPullQuery, ciHubsQuery, ciLookupQuery, ciBranchesQuery, ciSyncBody, ciPushBody, ciDiffBody, ciPublishBody, ciPublishPreviewBody, ciSyncMcpBody, ciOrgResourcesParam, orgResourcesConfigSchema, ciOrgResourcesPushBody, ciOrgResourcesDiffBody, CI_APPLY_ENTITY_KINDS, CI_APPLY_OPERATIONS, ciApplyErrorBaseSchema, ciApplyErrorSchema, ciSyncCountSchema, ciSyncChangesSchema, ciSyncWarningSchema, ciSyncResponseSchema;
8146
- var init_chunk_IYXLMIWU = __esm({
8147
- "../../packages/core/dist/chunk-IYXLMIWU.js"() {
8145
+ var PLACEHOLDER_TOKENS, ALLOWED_TYPES, SUBSCHEMA_OBJECT_KEYWORDS, SUBSCHEMA_LIST_KEYWORDS, SUBSCHEMA_MAP_KEYWORDS, MAX_SCHEMA_DEPTH, uuidSchema, USER_ID_REGEX, timestampSchema, idParamSchema, clientOptionalString, clientOptionalBoolean, clientOptionalNumber, messageAttachment, MAX_MESSAGE_BODY_BYTES, MAX_ATTACHMENTS_PER_MESSAGE, MESSAGE_ENVELOPE_HEADROOM_BYTES, MAX_AUDIO_FILE_BASE64_BYTES, MAX_KANBAN_STATUSES, MAX_FOLLOWUPS_PER_STATUS, MAX_LANES, MAX_ADDITIONAL_CONTEXT_SCHEMA_BYTES, RESERVED_TEMPLATE_DUMP_NAME, kanbanStatusSlugSchema, followupTypeSchema, EVENT_RELATIVE_FOLLOWUP_TYPES, followupTimeUnitSchema, followupIdSchema, SELECTABLE_FOLLOWUP_TYPES, MAX_LINKED_FOLLOWUP_TARGETS_PER_STATUS, followupSchema, MAX_OUTCOMES_PER_STATUS, kanbanOutcomeSchema, EXCLUSIVE_FLAG_PAIRS, kanbanStatusSchema, kanbanStatusesArraySchema, laneSchema, lanesArraySchema, toolIdParam, listToolsQuery, toolAgentQuery, deleteToolQuery, toolConnectionsQuery, nativeToolIdSchema, CONTEXT_BOUNDARIES, contextBoundarySchema, addNativeToolBody, addMcpToolBody, createCustomToolBody, updateCustomToolBody, updateToolExecutionConfigBody, PREVIOUS_CONVERSATIONS_MAX, NATIVE_TOOL_NAMES, previousConversationsCountField, summarizationThresholdField, flagConditionSchema, MONITOR_TRIGGERS, monitorTriggerSchema, MONITOR_FIRING_TRIGGERS, MONITOR_DELAY_SECONDS_MIN, MONITOR_IDLE_DELAY_REQUIRED_MESSAGE, MONITOR_HISTORY_MESSAGES_MAX, monitorHistoryMessagesSchema, monitorIncludeToolResultsSchema, MONITOR_INPUT_SHAPING_KEYS, MONITOR_INPUT_SHAPING_SCHEMAS, MONITOR_INPUT_SHAPING_IDLE_MESSAGE, monitorArgumentSourceSchema, MONITOR_NOTE_TEMPLATE_MAX, MONITOR_STEER_NOTE_MAX, monitorActionSchema, monitorRuleSchema, MONITOR_RULE_KEYS, MONITOR_RULE_SCHEMAS, MONITOR_RULE_TRIGGERS, MONITOR_RULE_TRIGGER_MESSAGE, CALL_UTTERANCE_SPEAKERS, callUtteranceSpeakerSchema, MONITOR_CALL_KEYS, MONITOR_CALL_SCHEMAS, MONITOR_CALL_KEY_MESSAGE, CALL_STEERING_MIN_CONFIDENCE, CALL_UTTERANCE_RULE_NOT_CONFIDENT_MESSAGE, CALL_UTTERANCE_FALLBACK_MESSAGE, CALL_UTTERANCE_FLAG_CONDITIONS_MESSAGE, CALL_STEER_NOTE_BLANK_MESSAGE, MONITOR_USER_MESSAGE_ACTION_KINDS, MONITOR_ASSISTANT_REPLY_ACTION_KINDS, MONITOR_CALL_UTTERANCE_ACTION_KINDS, INSERT_NOTE_TOOL_NAME, RUN_MONITOR_TOOL_NAME, MONITOR_RULE_ALLOWED_NATIVE_TOOLS, MONITOR_RULE_REENTRY_TOOLS, MONITOR_RULE_REENTRY_TRACKS, monitorConfigField, flagConditionsField, agentIdParam, listAgentsQuery, agentConnectionsQuery, createAgentBody, updateAgentBody, AGENT_PARAMETER_TYPES, AGENT_PARAMETER_NAME_REGEX, agentParameterCreateSchema, MAX_AGENT_PARAMETERS_PER_REQUEST, createAgentParametersBody, evalIdParam, sessionIdParam, scenarioSetIdParam, hubIdQuery, evalDateContextSchema, EVAL_FIXTURE_NAME_MAX_LENGTH, evalFixtureOverrideSchema, runSessionQuery, runJourneyQuery, EVAL_INPUT_ROLES, EVAL_INPUT_ROLE_LIST, ROLE_ECHO_MAX, EVAL_INITIAL_STATE_SCOPES, MAX_INITIAL_STATE_ENTRIES, evalInitialStateEntry, evalBody, EVAL_LIST_MAX_LIMIT, evalListLimit, getEvalsQuery, toggleEvalBody, bulkToggleEvalsBody, pacingConfigSchema, EVAL_MAX_SELECTED_SCENARIOS, evalScenarioSelectionEntrySchema, evalScenarioSelectionSchema, sessionConfigSchema, createSessionBody, getSessionsQuery, getSessionResultsQuery, getSessionRunsQuery, evalAnalyticsQuery, getSessionCostQuery, compareSessionsQuery, evalsSqlBody, evalsSqlSchemaQuery, exportResultsQuery, validateEvalBody, hubAgentsQuery, createScenarioSetBody, updateScenarioSetBody, scenarioSetsHubQuery, createScenarioFromConversationBody, createJourneyFromConversationBody, EVAL_ATTACHMENT_HASH_REGEX, evalAttachmentRef, turnMayCarryAttachments, ATTACHMENTS_USER_ONLY_MESSAGE, journeyIdParam, journeyToolCallSchema, journeyTurnSchema, journeyStepOverrideSchema, fixtureField, createJourneyBody, updateJourneyBody, evalSessionConfigResponseSchema, evalSessionResponseSchema, evalSessionListConfigSchema, evalSessionListItemSchema, seedReleaseStatusSchema, EVAL_SESSION_NOT_QUIESCENT, MAX_RESOURCE_FILE_SIZE, CALL_OPENING_LANGUAGES, callOpeningLanguage, CALL_OPENING_MAX_DURATION_MS, CALL_OPENING_MAX_BYTES, CALL_OPENING_CAPTION_MAX_CHARS, CALL_OPENING_CONTENT_TYPES, callOpeningContentType, CALL_OPENING_HASH_REGEX, callOpeningHash, callOpeningCaption, storedCallOpening, MAX_CALL_OPENING_ENCODED_BYTES, MAX_CALL_OPENING_BODY_BYTES, agentCallOpeningParams, putAgentCallOpeningBody, deleteAgentCallOpeningQuery, callOpeningParam, callOpeningQuery, MAX_10MB_BASE64_ENCODED_BYTES, MAX_EVAL_ATTACHMENT_ENCODED_BYTES, MAX_EVAL_ATTACHMENT_CARRIERS, MAX_EVAL_ATTACHMENT_AGGREGATE_ENCODED_BYTES, MAX_RESOURCE_ENCODED_BYTES, MAX_HUB_AS_CODE_RESOURCES, MAX_HUB_AS_CODE_RESOURCE_FILES, MAX_RESOURCE_AGGREGATE_ENCODED_BYTES, MAX_CI_CONFIG_BODY_BYTES, MAX_CALL_OPENING_CARRIERS, MAX_CALL_OPENING_AGGREGATE_ENCODED_BYTES, hubAsCodeStateSchema, hubAsCodeResourceFileSchema, hubAsCodeResourceSchema, uuidPattern, ciUuidSchema, boundedHubAsCodeResourcesSchema, hubAsCodeConfigSchema, ciPullHubIdParam, ciBranchParam, ciPullQuery, ciHubsQuery, ciLookupQuery, ciBranchesQuery, ciSyncBody, ciPushBody, ciDiffBody, ciPublishBody, ciPublishPreviewBody, ciSyncMcpBody, ciOrgResourcesParam, orgResourcesConfigSchema, ciOrgResourcesPushBody, ciOrgResourcesDiffBody, CI_APPLY_ENTITY_KINDS, CI_APPLY_OPERATIONS, ciApplyErrorBaseSchema, ciApplyErrorSchema, ciSyncCountSchema, ciSyncChangesSchema, ciSyncWarningSchema, ciSyncResponseSchema;
8146
+ var init_chunk_NCJ3EXN7 = __esm({
8147
+ "../../packages/core/dist/chunk-NCJ3EXN7.js"() {
8148
8148
  "use strict";
8149
- init_chunk_YX7EL2HJ();
8149
+ init_chunk_SNA2DXAC();
8150
8150
  init_chunk_IBL7FANV();
8151
8151
  init_chunk_C2UEA2KW();
8152
- init_chunk_XNDI2XQA();
8152
+ init_chunk_3NS3HULK();
8153
8153
  init_chunk_MIWZOSPI();
8154
8154
  init_chunk_JWPRTSIB();
8155
8155
  init_chunk_T7KQKDET();
8156
8156
  init_chunk_L5F7ZOUJ();
8157
- init_chunk_SSN6QPMX();
8157
+ init_chunk_2ISUBJG7();
8158
8158
  init_zod();
8159
8159
  init_zod();
8160
8160
  init_zod();
@@ -8735,10 +8735,6 @@ var init_chunk_IYXLMIWU = __esm({
8735
8735
  agentParameterCreateSchema,
8736
8736
  external_exports.array(agentParameterCreateSchema).max(MAX_AGENT_PARAMETERS_PER_REQUEST, `too many parameters (max ${MAX_AGENT_PARAMETERS_PER_REQUEST})`)
8737
8737
  ]);
8738
- paginationSchema = external_exports.object({
8739
- limit: external_exports.number().int().positive().max(1e3).default(50),
8740
- offset: external_exports.number().int().min(0).default(0)
8741
- }).optional();
8742
8738
  evalIdParam = external_exports.object({
8743
8739
  id: external_exports.string().uuid()
8744
8740
  });
@@ -9262,6 +9258,7 @@ var init_chunk_IYXLMIWU = __esm({
9262
9258
  "agent",
9263
9259
  "agent_parameter",
9264
9260
  "agent_resource",
9261
+ "automation",
9265
9262
  "connection",
9266
9263
  "eval",
9267
9264
  "hub_config",
@@ -9269,7 +9266,6 @@ var init_chunk_IYXLMIWU = __esm({
9269
9266
  "outbound_contact",
9270
9267
  "outbound_list",
9271
9268
  "outbound_list_contact",
9272
- "outbound_schedule",
9273
9269
  "resource",
9274
9270
  "resource_file",
9275
9271
  "state",
@@ -9336,9 +9332,9 @@ var init_chunk_IYXLMIWU = __esm({
9336
9332
  outbound_lists_created: ciSyncCountSchema,
9337
9333
  outbound_lists_updated: ciSyncCountSchema,
9338
9334
  outbound_lists_deleted: ciSyncCountSchema,
9339
- outbound_schedules_created: ciSyncCountSchema,
9340
- outbound_schedules_updated: ciSyncCountSchema,
9341
- outbound_schedules_deleted: ciSyncCountSchema
9335
+ automations_created: ciSyncCountSchema,
9336
+ automations_updated: ciSyncCountSchema,
9337
+ automations_deleted: ciSyncCountSchema
9342
9338
  });
9343
9339
  ciSyncWarningSchema = external_exports.object({
9344
9340
  code: external_exports.string(),
@@ -9380,7 +9376,7 @@ var init_chunk_XJDAH2N7 = __esm({
9380
9376
  }
9381
9377
  });
9382
9378
 
9383
- // ../../packages/core/dist/chunk-GTV7SIKE.js
9379
+ // ../../packages/core/dist/chunk-UBWCEXTH.js
9384
9380
  function refineLaneReferences(val, ctx) {
9385
9381
  const lanes = val.lanes;
9386
9382
  const statuses = val.kanban_statuses;
@@ -9416,13 +9412,31 @@ function refineScopedTarget(data, ctx) {
9416
9412
  }
9417
9413
  }
9418
9414
  }
9419
- var primaryRegionSchema, placementSourceSchema, orgIdParam, orgAdminIdParam, createOrganizationBody, updateOrganizationBody, addOrgAdminBody, hubIdParam, hubAdminIdParam, hubUserIdParam, hubIdentityIdParam, hubTeamIdParam, hubTeamUserDeleteParam, hubSchemaQuery, PREVIEW_LABEL_MAX_LENGTH, MAX_ENDED_INDEX_RETENTION_DAYS, MAX_EVAL_RETENTION_DAYS, previewLabelField, createHubBody, updateHubBody, addHubAdminBody, addHubIdentityAuthorizationBody, contactDecisionBody, approveContactBody, listContactAccessQuery, createHubTeamBody, updateHubTeamBody, addHubTeamUserBody, reassignHubUserBody, replicatePreviewBody, updateChannelTestIdentitiesBody, claimCodeChannelParam, claimCodeDeleteParam, connectionIdParam, connectorIdParam, listConnectionsQuery, deleteConnectionQuery, addConnectionBody, editConnectionBody, PRODUCTION_DIRECT_FIELDS, setProductionCredentialBody, registerWhatsappQuery, registerWhatsappBody, retryProvisioningQuery, resendDomainStatusQuery, initialValueCreateSchema, initialValueUpdateSchema, stateIdParam, listStatesQuery, stateNameSchema, createStateBody, updateStateBody, reorderStatesBody, variantAiModeSchema, experimentStatusSchema, overlayUpdateSchema, experimentIdParam, variantIdParam, listExperimentsQuery, listVariantsQuery, listOverridesQuery, deleteOverrideQuery, createExperimentBody, updateExperimentBody, setExperimentStatusBody, createVariantBody, updateVariantBody, upsertOverrideBody, orgTagIdParam, listOrgTagsQuery, ORG_TAG_NAME_REGEX, ORG_TAG_NAME_MAX_LENGTH, createOrgTagBody, updateOrgTagBody, orgCredentialIdParam, listOrgCredentialsQuery, createOrgCredentialBody, updateOrgCredentialBody, BASE_CREDENTIAL_MANAGED_BY, BASE_CREDENTIAL_NAME_MAX, baseCredentialNameSchema, createBaseCredentialLinkBody, baseCredentialLinkParams, baseCredentialLinkQuery, orgResourceIdParam, orgResourceFileIdParam, orgResourceFolderIdParam, hubOrgResourceParam, listOrgResourcesQuery, orgIdQuery, createOrgResourceBody, updateOrgResourceBody, createOrgResourceFolderBody, updateOrgResourceFolderBody, uploadOrgResourceFileBody, updateOrgResourceFileBody, uploadOrgSkillZipBody, linkOrgResourceBody, resourceIdParam, listResourcesQuery, createResourceBody, updateResourceBody, syncSkillsBody, resourceFileIdParam, listResourceFilesQuery, createResourceFileBody, updateResourceFileBody, uploadResourceFileBody, uploadSkillZipBody, resourceFolderIdParam, listResourceFoldersQuery, createResourceFolderBody, updateResourceFolderBody, agentResourceQuery, hubResourceQuery, linkAgentResourceBody, updateAgentResourceBody, unlinkAgentResourceQuery, navItemSchema, hubCountResetBody, navItemCountResetBody, typingBody, analyticsHubIdParam, analyticsVariableIdParam, updateVariablePinBody, updateAnalyticsViewBody, NUMERIC_FILTER_OPS, TEXT_FILTER_OPS, CATEGORICAL_FILTER_OPS, VARIABLE_FILTER_OPS, STRUCTURED_QUERY_OPS, STRUCTURED_QUERY_AGGREGATIONS, filterValueSchema, conversationsBody, analyticsConversationIdParam, messagesQuery, conversationDetailDataQuery, analyticsDataBody, structuredQueryBody, analyticsSqlBody, analyticsSqlTable, analyticsSqlSchemaQuery, getConversationsQuery, getMessagesQuery, appMessageSenderType, appMessageReceiverType, apiChannelMessage, apiChannelMessageBody, appMessageBody, appMessageResponse, CALL_STATUSES, callStatus, CALL_END_REASONS, callEndReason, CALL_TRANSPORTS, callTransport, CALL_PARTICIPANT_TYPES, callParticipantType, callInstant, MAX_SDP_OFFER_LENGTH, sdpDescription, sdpOffer, MAX_CALL_REQUEST_BODY_BYTES, hubScoped, callSummaryFields, callSummary, callIdParam, createCallBody, createCallResponse, callReadyBody, callHangupBody, callStatusQuery, MAX_REPORTED_DELEGATION_IDS, callDelegationId, callDelegationsBody, callResponse, MAX_CALL_RECORDING_GAPS, callRecordingGap, callRecordingNoteMetadata, evalCallInstant, EVAL_CALL_MIN_SECONDS, EVAL_CALL_MAX_SECONDS, EVAL_CALL_SPOKEN_LINE_MAX_CHARS, hubScoped2, createEvalCallBody, createEvalCallResponse, evalCallConversationQuery, evalCallRecordQuery, evalCallSpeaker, evalCallUtterance, evalCallTurn, evalCallRecording, evalCallRecordResponse, evalCallFinishResponse, updateUserBody, updateProfileBody, pathnameRegex, updatePreferencesBody, registerPushTokenBody, deletePushTokenQuery, recordAiDisclosureAcceptanceBody, activityQuery, deletionModeSchema, deletionRequestBody, CACHE_RECONCILE_MAX_IDS, CACHE_RECONCILE_MAX_HUBS, cacheReconcileScopeSchema, cachedConversationPageSchema, cachedHistoryThreadSchema, cachedPeopleThreadSchema, cacheReconcileBody, archiveHubIdParam, archiveConversationParams, archiveListQuery, archiveMessageObservabilityParams, conversationIdParam, conversationHubQuery, claimBody, releaseBody, transferBody, closeBody, additionalContextPayloadSchema, kanbanUpdateBody, annotateConversationBody, observabilityParams, observabilityListParams, deleteUserConversationsBody, deleteUserConversationsResponse, sendMessageBody, listConversationsQuery, flagSourceSchema, getConversationsResponse, getConversationDetailParams, getConversationDetailQuery, getConversationDetailResponse, listWhatsAppTemplatesQuery, sendWhatsAppTemplateBody, copilotSuggestBody, copilotSuggestResponse, CONSULT_THREAD_STATUSES, consultThreadStatus, CONSULT_THREAD_TITLE_MAX, consultThreadTitle, consultThreadSummary, listConsultThreadsQuery, listConsultThreadsResponse, createConsultThreadBody, createConsultThreadResponse, consultThreadIdParam, updateConsultThreadBody, updateConsultThreadResponse, CONSULT_AWAIT_TIMEOUT_MS, billingOrgIdParam, subscriptionItemParams, spendCapBody, growthPacksBody, portalSessionBody, checkoutSessionBody, updateBillingCurrencyBody, invoicesQuery, planKeySchema, billingStatusSchema, billingPlanTypeSchema, dataUsageCountersSchema, REKOR_ENTITLEMENT_CONTRACT_VERSION, entitlementProjectionSchema, rekorEntitlementRefreshMessageSchema, downloadBody, uploadQuery, SIGN_URL_MAX_EXPIRES_IN_SECONDS, signUrlBody, outboundSchemaQuery, templateIdParam, listTemplatesQuery, deleteTemplateQuery, templateStatusQuery, createTemplateBody, updateTemplateBody, submitTemplateBody, testTemplateBody, contactIdParam, listContactsQuery, createContactBody, updateContactBody, listIdParam, listListsQuery, listListContactsQuery, createListBody, updateListBody, addListContactsBody, removeListContactsBody, scheduleIdParam, listSchedulesQuery, listExecutionsQuery, createScheduleBody, updateScheduleBody, VERSION_PART, MOBILE_APP_VERSION_RE, mobileAppVersionSchema, MOBILE_PLATFORMS, mobilePlatformSchema, mobileVersionPolicyQuery, mobileVersionPolicySchema, mobileVersionPolicyResponse, adminOrgIdParam, adminOrgAdminIdParam, adminUserIdParam, PRICING_PLAN_ID_RE, adminPlanIdParam, adminOrganizationsQuery, adminUserSearchQuery, kanbanSlugMigrationQuery, adjustQuotaBody, updatePlanBody, addAdminUserBody, MAX_VOICE_CALL_MINUTE_OPS, voiceCallMinuteOps, updatePlatformConfigBody, updateFreeOrgLimitBody, adminScopedTargetShape, adminScopedTargetBody, BRANCHING_ORPHAN_ENTITY_TYPES, BRANCHING_ORPHAN_MAX_TARGETS, adminRepairBranchingOrphansBody, adminRepairLegacyOrgGrantsBody, adminRepairCompedPlansBody, updatePricingPlanBody, dataExplorerSearchQuery, dataExplorerOrgIdParam, dataExplorerHubIdParam, dataExplorerConvIdParam, dataExplorerDoInstancesQuery, dataExplorerNsIdParam, dataExplorerKvKeysBody, dataExplorerKvKeyBody, uuidOrHexId, dataExplorerDeleteOrgParam, dataExplorerDeleteHubParam, dataExplorerDeleteConvParam, dataExplorerDeleteUserParam, dataExplorerDeleteQuery, dataExplorerKvDeleteBody, pitrDoNamespace, pitrBookmarkParam, pitrRestoreBody, healthSamplingTriggerBody, dataExplorerDebugDoType, DEBUG_READ_MAX_LIMIT, DEBUG_READ_DEFAULT_LIMIT, DEBUG_DO_HEX_PREFIX, debugDoEntityId, debugTableName, dataExplorerDebugTablesParam, dataExplorerDebugRowsParam, dataExplorerDebugRowsQuery, dataExplorerDebugAnalyticsTable, debugUuid, dataExplorerDebugAnalyticsRowsParam, dataExplorerDebugAnalyticsRowsQuery, debugHubConvParam, debugMessageIdQuery, sandboxEgressPolicy, SANDBOX_EXEC_MAX_CMD_LENGTH, SANDBOX_EXEC_MAX_ALLOWLIST, SANDBOX_EXEC_MAX_TIMEOUT_MS, adminSandboxExecBody, META_ENTITY_ID_PATTERN, metaEntityId, whatsappCallbackBody, authMeResponse, wsTicketResponse, sessionCheckResponse, logoutResponse, magicCodeSendBody, magicCodeSendResponse, magicCodeVerifyBody, magicCodeVerifyResponse, passwordLoginBody, stateOperationBody, conversationListResourcesQuery, conversationReadResourceQuery, listPendingSchedulesQuery, listHubAggregateSchedulesQuery, reportSourceSchema, intakeReportSourceSchema, reportClassificationSchema, reportStatusSchema, reportLocaleSchema, reportMessageAuthorRoleSchema, reportMessageSchema, sentryRefStatusSchema, createReportBody, editReportBody, reporterReportSummarySchema, reporterListResponseSchema, getReportResponseSchema, reporterTransitionResponseSchema, contestReportBody, reporterListQuery, listReportsQuery, GITHUB_ISSUE_URL_REGEX, githubIssueUrlSchema, transitionReportBody, groupReportsBody, holdReportBody, clickhouseReadyResponse, bootstrapQuery, MAX_NAME_LENGTH, MAX_VALUE_LENGTH, MAX_TAGS, MAX_TAG_LENGTH, MAX_SCOPE_HUBS, MAX_SCOPE_TAGS, vaultSecretScopeSchema, vaultCreateBody, vaultUpdateBody, MAX_NAME_LENGTH2, MAX_HUBS_PER_GRANT, MAX_HUB_TAGS_PER_GRANT, MAX_GRANTS, permissionEnum, grantScopeSchema, grantSchema, createTokenBody, tokenOrgIdParam, invitePreviewQuery, inviteRolePreviewResponse, inviteContactPreviewResponse, invitePreviewResponse, inviteUnsubscribeBody, jsonSchemaSchema, hubUserIdentity, stateValueEntry, getHubUserContextResponse, updateHubUserBody, updateHubUserResponse, unlockHubUserNameResponse, stateResetParams, stateResetResponse, hubAlertsParam, hubAlertSeverity, hubAlert, hubAlertsListResponse, noticeSeveritySchema, noticeStatusSchema, NOTICE_SCOPE_REGEX, noticeScopeSchema, noticeLinkSchema, createNoticeBody, updateNoticeBody, listNoticesQuery, noticeIdParamSchema, ADMIN_SKILL_NAME_REGEX, adminSkillNameParam, REKOR_ACTOR_TYPE_HEADER, REKOR_ACTOR_ID_HEADER, REKOR_ACTOR_LABEL_HEADER, REKOR_ACTOR_ORG_HEADER, REKOR_ACTOR_ADMIN_HEADER, REKOR_CLIENT_HEADER, REKOR_TOOL_ID_HEADER, REKOR_CLIENTS, rekorClientSchema, MAX_REKOR_TOOL_ID_LENGTH, rekorToolIdSchema, DATA_PROXY_MOUNT, DATA_PROXY_PREFIX, REKOR_V1_PREFIX, DATA_PROXY_ORG_QUERY_PARAM, MAX_PROVISIONING_BODY_BYTES, dataProxyQuery, rekorAttestation, REQUIRED_REKOR_ATTESTATION_HEADERS, BASE_DESTRUCTION_MOUNT, BASE_DESTRUCTION_PREFIX, BASE_DESTRUCTION_CONFIRM_PATH, baseDestructionConfirmBody, BASE_DESTRUCTION_GRACE_MS, BASE_DESTRUCTION_CONFIRM_TTL_MS, BASE_DESTRUCTION_ORG_QUERY_PARAM, baseDestructionQuery, baseDestructionParam, baseDestructionInitiateBody, baseDestructionStatus, baseDestructionRequest, baseDestructionListResponse, baseDestructionInitiateResponse, baseDestructionConfirmResponse, baseDestructionCancelResponse, rekorBaseChangeMessageSchema, PEOPLE_CONTACT_PAGE_MAX, PEOPLE_CONTACT_PAGE_DEFAULT, PEOPLE_CONTACT_EMAIL_MAX_LENGTH, peopleUserIdSchema, peopleInviteEmailSchema, peopleContactInviteBody, peopleContactInviteIdParam, peopleContactUserIdParam, peopleContactBlockBody, peopleContactPageQuery, peopleOutgoingInviteSchema, peopleContactPersonSchema, peopleContactSchema, peopleIncomingInviteSchema, peopleBlockedUserSchema, PEOPLE_THREAD_MESSAGE_MAX_LENGTH, PEOPLE_THREAD_MESSAGES_PAGE_MAX, PEOPLE_THREAD_PAGE_MAX, PEOPLE_THREAD_PAGE_DEFAULT, PEOPLE_GROUP_NAME_MAX_LENGTH, PEOPLE_GROUP_AVATAR_URL_MAX_LENGTH, PEOPLE_THREAD_ATTACHMENT_MAX_BYTES, PEOPLE_THREAD_ATTACHMENT_NAME_MAX_LENGTH, PEOPLE_ATTACHMENT_STORAGE_PER_USER_BYTES, PEOPLE_THREAD_ATTACHMENT_MAX_MB, PEOPLE_THREAD_ATTACHMENT_URL_TTL_SECONDS, PEOPLE_THREAD_ATTACHMENT_URLS_MAX, peopleThreadIdParam, peopleThreadMessageIdParam, peopleThreadListQuery, peopleThreadMessagesQuery, peopleThreadAttachmentUploadSchema, peopleThreadSendBody, peopleThreadAttachmentUrlsBody, peopleThreadReadBody, peopleThreadSettingsBody, peopleGroupNameSchema, peopleGroupAvatarUrlSchema, peopleGroupCreateBody, peopleOrgDirectBody, peopleGroupUpdateBody, peopleGroupInviteBody, peopleOrgErasureBody, peopleGroupLeaveBody, peopleGroupInviteIdParam, peopleGroupIncomingInviteIdParam, peopleGroupMemberParam, peopleThreadKindSchema, peopleThreadMemberSchema, peopleThreadLastMessageSchema, peopleGroupRoleSchema, peopleGroupSummarySchema, peopleThreadSummarySchema, peopleThreadAttachmentSchema, peopleThreadMessageSchema, peopleGroupMemberSchema, peopleGroupSentInviteSchema, peopleGroupIncomingInviteSchema, PEOPLE_REPORT_DETAILS_MAX_LENGTH, peopleReportReasonSchema, reportDetailsSchema, reportFields, peopleReportBody, PEOPLE_MODERATION_NOTE_MAX_LENGTH, ADMIN_PEOPLE_REPORTS_PAGE_MAX, ADMIN_PEOPLE_REPORTS_PAGE_DEFAULT, peopleModerationActionSchema, moderationNoteSchema, adminPeopleReportListQuery, adminPeopleReportIdParam, adminPeopleMessageRemovalBody, adminPeopleSuspendBody, adminPeopleNoteBody, COMMUNITIES_PER_ORG_MAX, COMMUNITY_NAME_MAX_LENGTH, COMMUNITY_REGISTRY_CLOSED_REASON, COMMUNITY_JOIN_SOURCE_MAX_LENGTH, COMMUNITY_JOIN_FLOW_TOKEN_MAX_LENGTH, COMMUNITY_ROOM_NAME_MAX_LENGTH, COMMUNITY_MESSAGE_MAX_LENGTH, COMMUNITY_POST_TITLE_MAX_LENGTH, COMMUNITY_POST_SEARCH_MAX_LENGTH, COMMUNITY_RULES_MAX_LENGTH, COMMUNITY_SLOW_MODE_MAX_SECONDS, communityNameSchema, adminCreateCommunityBody, communityIdParam, communityJoinTokenSchema, communityJoinSourceSchema, communityJoinPreviewQuery, communityJoinBody, communityRoomKindSchema, communityRoomNameSchema, communityRoomIdParam, communityMessageIdParam, communityRoomCreateBody, communityRoomUpdateBody, communityMessagesQuery, communityMessageBodySchema, communityPostTitleSchema, communitySendBody, communityEditBody, communityPostIdParam, communityPostsQuery, communityAnswerBody, communityReadBody, communityPersonParam, communityOrgParam, communityPeopleQuery, communitySettingsBody, communityBanBody, communityLockBody, communityPinBody, communityModLogQuery, communityReportsQuery, communityReportIdParam;
9420
- var init_chunk_GTV7SIKE = __esm({
9421
- "../../packages/core/dist/chunk-GTV7SIKE.js"() {
9415
+ function parseCommunityLessonVideoUrl(url) {
9416
+ const parts = /^https?:\/\/([^/?#]+)([^?#]*)(?:\?([^#]*))?(?:#.*)?$/i.exec(url.trim());
9417
+ if (!parts) return null;
9418
+ const host = parts[1].toLowerCase();
9419
+ const path36 = parts[2] ?? "";
9420
+ const query = parts[3] ?? "";
9421
+ let id;
9422
+ if (host === YOUTU_BE) {
9423
+ id = /^\/([A-Za-z0-9_-]{11})\/?$/.exec(path36)?.[1];
9424
+ } else if (YOUTUBE_HOSTS.has(host)) {
9425
+ if (path36 === "/watch" || path36 === "/watch/") {
9426
+ id = query.split("&").find((param) => param.startsWith("v="))?.slice(2);
9427
+ } else {
9428
+ id = YOUTUBE_ID_PATH.exec(path36)?.[1];
9429
+ }
9430
+ }
9431
+ return id !== void 0 && YOUTUBE_ID.test(id) ? { provider: "youtube", id } : null;
9432
+ }
9433
+ var primaryRegionSchema, placementSourceSchema, orgIdParam, orgAdminIdParam, createOrganizationBody, updateOrganizationBody, addOrgAdminBody, hubIdParam, hubAdminIdParam, hubUserIdParam, hubIdentityIdParam, hubTeamIdParam, hubTeamUserDeleteParam, hubSchemaQuery, PREVIEW_LABEL_MAX_LENGTH, MAX_ENDED_INDEX_RETENTION_DAYS, MAX_EVAL_RETENTION_DAYS, previewLabelField, hubTagsField, createHubBody, updateHubBody, HUB_TAG_CHANGE_REFUSED, hubTagChangeRefusalSchema, addHubAdminBody, addHubIdentityAuthorizationBody, contactDecisionBody, approveContactBody, listContactAccessQuery, createHubTeamBody, updateHubTeamBody, addHubTeamUserBody, reassignHubUserBody, replicatePreviewBody, updateChannelTestIdentitiesBody, claimCodeChannelParam, claimCodeDeleteParam, connectionIdParam, connectorIdParam, listConnectionsQuery, deleteConnectionQuery, addConnectionBody, editConnectionBody, PRODUCTION_DIRECT_FIELDS, setProductionCredentialBody, registerWhatsappQuery, registerWhatsappBody, retryProvisioningQuery, resendDomainStatusQuery, initialValueCreateSchema, initialValueUpdateSchema, stateIdParam, listStatesQuery, stateNameSchema, createStateBody, updateStateBody, reorderStatesBody, variantAiModeSchema, experimentStatusSchema, overlayUpdateSchema, experimentIdParam, variantIdParam, listExperimentsQuery, listVariantsQuery, listOverridesQuery, deleteOverrideQuery, createExperimentBody, updateExperimentBody, setExperimentStatusBody, createVariantBody, updateVariantBody, upsertOverrideBody, orgTagIdParam, listOrgTagsQuery, ORG_TAG_NAME_REGEX, ORG_TAG_NAME_MAX_LENGTH, createOrgTagBody, updateOrgTagBody, orgCredentialIdParam, listOrgCredentialsQuery, createOrgCredentialBody, updateOrgCredentialBody, BASE_CREDENTIAL_MANAGED_BY, BASE_CREDENTIAL_NAME_MAX, baseCredentialNameSchema, createBaseCredentialLinkBody, baseCredentialLinkParams, baseCredentialLinkQuery, orgResourceIdParam, orgResourceFileIdParam, orgResourceFolderIdParam, hubOrgResourceParam, listOrgResourcesQuery, orgIdQuery, createOrgResourceBody, updateOrgResourceBody, createOrgResourceFolderBody, updateOrgResourceFolderBody, uploadOrgResourceFileBody, updateOrgResourceFileBody, uploadOrgSkillZipBody, linkOrgResourceBody, resourceIdParam, listResourcesQuery, createResourceBody, updateResourceBody, syncSkillsBody, resourceFileIdParam, listResourceFilesQuery, createResourceFileBody, updateResourceFileBody, uploadResourceFileBody, uploadSkillZipBody, resourceFolderIdParam, listResourceFoldersQuery, createResourceFolderBody, updateResourceFolderBody, agentResourceQuery, hubResourceQuery, linkAgentResourceBody, updateAgentResourceBody, unlinkAgentResourceQuery, navItemSchema, hubCountResetBody, navItemCountResetBody, typingBody, analyticsHubIdParam, analyticsVariableIdParam, updateVariablePinBody, updateAnalyticsViewBody, NUMERIC_FILTER_OPS, TEXT_FILTER_OPS, CATEGORICAL_FILTER_OPS, VARIABLE_FILTER_OPS, STRUCTURED_QUERY_OPS, STRUCTURED_QUERY_AGGREGATIONS, filterValueSchema, conversationsBody, analyticsConversationIdParam, messagesQuery, conversationDetailDataQuery, analyticsDataBody, structuredQueryBody, analyticsSqlBody, analyticsSqlTable, analyticsSqlSchemaQuery, getConversationsQuery, getMessagesQuery, appMessageSenderType, appMessageReceiverType, apiChannelMessage, apiChannelMessageBody, appMessageBody, appMessageResponse, CALL_STATUSES, callStatus, CALL_END_REASONS, callEndReason, CALL_TRANSPORTS, callTransport, CALL_PARTICIPANT_TYPES, callParticipantType, callInstant, MAX_SDP_OFFER_LENGTH, sdpDescription, sdpOffer, MAX_CALL_REQUEST_BODY_BYTES, hubScoped, callSummaryFields, callSummary, callIdParam, createCallBody, createCallResponse, callReadyBody, callHangupBody, callStatusQuery, MAX_REPORTED_DELEGATION_IDS, callDelegationId, callDelegationsBody, callResponse, MAX_CALL_RECORDING_GAPS, callRecordingGap, callRecordingNoteMetadata, evalCallInstant, EVAL_CALL_MIN_SECONDS, EVAL_CALL_MAX_SECONDS, EVAL_CALL_SPOKEN_LINE_MAX_CHARS, hubScoped2, createEvalCallBody, createEvalCallResponse, evalCallConversationQuery, evalCallRecordQuery, evalCallSpeaker, evalCallUtterance, evalCallTurn, evalCallRecording, evalCallRecordResponse, evalCallFinishResponse, updateUserBody, updateProfileBody, pathnameRegex, updatePreferencesBody, registerPushTokenBody, deletePushTokenQuery, recordAiDisclosureAcceptanceBody, activityQuery, deletionModeSchema, deletionRequestBody, CACHE_RECONCILE_MAX_IDS, CACHE_RECONCILE_MAX_HUBS, cacheReconcileScopeSchema, cachedConversationPageSchema, cachedHistoryThreadSchema, cachedPeopleThreadSchema, cacheReconcileBody, archiveHubIdParam, archiveConversationParams, archiveListQuery, archiveMessageObservabilityParams, conversationIdParam, conversationHubQuery, claimBody, releaseBody, transferBody, closeBody, additionalContextPayloadSchema, kanbanUpdateBody, annotateConversationBody, observabilityParams, observabilityListParams, deleteUserConversationsBody, deleteUserConversationsResponse, sendMessageBody, listConversationsQuery, flagSourceSchema, getConversationsResponse, getConversationDetailParams, getConversationDetailQuery, getConversationDetailResponse, listWhatsAppTemplatesQuery, sendWhatsAppTemplateBody, copilotSuggestBody, copilotSuggestResponse, CONSULT_THREAD_STATUSES, consultThreadStatus, CONSULT_THREAD_TITLE_MAX, consultThreadTitle, consultThreadSummary, listConsultThreadsQuery, listConsultThreadsResponse, createConsultThreadBody, createConsultThreadResponse, consultThreadIdParam, updateConsultThreadBody, updateConsultThreadResponse, CONSULT_AWAIT_TIMEOUT_MS, billingOrgIdParam, subscriptionItemParams, spendCapBody, growthPacksBody, portalSessionBody, checkoutSessionBody, updateBillingCurrencyBody, invoicesQuery, planKeySchema, billingStatusSchema, billingPlanTypeSchema, dataUsageCountersSchema, REKOR_ENTITLEMENT_CONTRACT_VERSION, entitlementProjectionSchema, rekorEntitlementRefreshMessageSchema, downloadBody, uploadQuery, SIGN_URL_MAX_EXPIRES_IN_SECONDS, signUrlBody, templateIdParam, listTemplatesQuery, deleteTemplateQuery, templateStatusQuery, createTemplateBody, updateTemplateBody, submitTemplateBody, testTemplateBody, contactIdParam, listContactsQuery, createContactBody, updateContactBody, listIdParam, listListsQuery, listListContactsQuery, createListBody, updateListBody, addListContactsBody, removeListContactsBody, AUTOMATION_TRIGGER_TYPES, AUTOMATION_TARGET_TYPES, AUTOMATION_ACTION_TYPES, AUTOMATION_CHANNEL_TYPES, AUTOMATION_NAME_MAX, AUTOMATION_DESCRIPTION_MAX, AUTOMATION_INSTRUCTIONS_MAX, AUTOMATION_TEXT_MAX, AUTOMATION_CRON_MAX, automationTriggerSchema, automationTargetSchema, automationActionSchema, automationName, automationDescription, automationIdParam, automationHubQuery, AUTOMATION_RUNS_PAGE_MAX, listAutomationRunsQuery, createAutomationBody, updateAutomationBody, VERSION_PART, MOBILE_APP_VERSION_RE, mobileAppVersionSchema, MOBILE_PLATFORMS, mobilePlatformSchema, mobileVersionPolicyQuery, mobileVersionPolicySchema, mobileVersionPolicyResponse, adminOrgIdParam, adminOrgAdminIdParam, adminUserIdParam, PRICING_PLAN_ID_RE, adminPlanIdParam, adminOrganizationsQuery, adminUserSearchQuery, kanbanSlugMigrationQuery, adjustQuotaBody, updatePlanBody, addAdminUserBody, MAX_VOICE_CALL_MINUTE_OPS, voiceCallMinuteOps, updatePlatformConfigBody, updateFreeOrgLimitBody, adminScopedTargetShape, adminScopedTargetBody, BRANCHING_ORPHAN_ENTITY_TYPES, BRANCHING_ORPHAN_MAX_TARGETS, adminRepairBranchingOrphansBody, adminRepairLegacyOrgGrantsBody, adminRepairCompedPlansBody, updatePricingPlanBody, dataExplorerSearchQuery, dataExplorerOrgIdParam, dataExplorerHubIdParam, dataExplorerConvIdParam, dataExplorerDoInstancesQuery, dataExplorerNsIdParam, dataExplorerKvKeysBody, dataExplorerKvKeyBody, uuidOrHexId, dataExplorerDeleteOrgParam, dataExplorerDeleteHubParam, dataExplorerDeleteConvParam, dataExplorerDeleteUserParam, dataExplorerDeleteQuery, dataExplorerKvDeleteBody, pitrDoNamespace, pitrBookmarkParam, pitrRestoreBody, healthSamplingTriggerBody, dataExplorerDebugDoType, DEBUG_READ_MAX_LIMIT, DEBUG_READ_DEFAULT_LIMIT, DEBUG_DO_HEX_PREFIX, debugDoEntityId, debugTableName, dataExplorerDebugTablesParam, dataExplorerDebugRowsParam, dataExplorerDebugRowsQuery, dataExplorerDebugAnalyticsTable, debugUuid, dataExplorerDebugAnalyticsRowsParam, dataExplorerDebugAnalyticsRowsQuery, debugHubConvParam, debugMessageIdQuery, sandboxEgressPolicy, SANDBOX_EXEC_MAX_CMD_LENGTH, SANDBOX_EXEC_MAX_ALLOWLIST, SANDBOX_EXEC_MAX_TIMEOUT_MS, adminSandboxExecBody, META_ENTITY_ID_PATTERN, metaEntityId, whatsappCallbackBody, authMeResponse, wsTicketResponse, sessionCheckResponse, logoutResponse, magicCodeSendBody, magicCodeSendResponse, magicCodeVerifyBody, magicCodeVerifyResponse, passwordLoginBody, stateOperationBody, conversationListResourcesQuery, conversationReadResourceQuery, listPendingSchedulesQuery, listHubAggregateSchedulesQuery, reportSourceSchema, intakeReportSourceSchema, reportClassificationSchema, reportStatusSchema, reportLocaleSchema, reportMessageAuthorRoleSchema, reportMessageSchema, sentryRefStatusSchema, createReportBody, editReportBody, reporterReportSummarySchema, reporterListResponseSchema, getReportResponseSchema, reporterTransitionResponseSchema, contestReportBody, reporterListQuery, listReportsQuery, GITHUB_ISSUE_URL_REGEX, githubIssueUrlSchema, transitionReportBody, groupReportsBody, holdReportBody, clickhouseReadyResponse, bootstrapQuery, MAX_NAME_LENGTH, MAX_VALUE_LENGTH, MAX_TAGS, MAX_TAG_LENGTH, MAX_SCOPE_HUBS, MAX_SCOPE_TAGS, vaultSecretScopeSchema, vaultCreateBody, vaultUpdateBody, MAX_NAME_LENGTH2, MAX_HUBS_PER_GRANT, MAX_HUB_TAGS_PER_GRANT, MAX_GRANTS, permissionEnum, grantScopeSchema, grantSchema, createTokenBody, tokenOrgIdParam, invitePreviewQuery, inviteRolePreviewResponse, inviteContactPreviewResponse, invitePreviewResponse, inviteUnsubscribeBody, jsonSchemaSchema, hubUserIdentity, stateValueEntry, getHubUserContextResponse, updateHubUserBody, updateHubUserResponse, unlockHubUserNameResponse, stateResetParams, stateResetResponse, hubAlertsParam, hubAlertSeverity, hubAlert, hubAlertsListResponse, noticeSeveritySchema, noticeStatusSchema, NOTICE_SCOPE_REGEX, noticeScopeSchema, noticeLinkSchema, createNoticeBody, updateNoticeBody, listNoticesQuery, noticeIdParamSchema, ADMIN_SKILL_NAME_REGEX, adminSkillNameParam, REKOR_ACTOR_TYPE_HEADER, REKOR_ACTOR_ID_HEADER, REKOR_ACTOR_LABEL_HEADER, REKOR_ACTOR_ORG_HEADER, REKOR_ACTOR_ADMIN_HEADER, REKOR_CLIENT_HEADER, REKOR_TOOL_ID_HEADER, REKOR_CLIENTS, rekorClientSchema, MAX_REKOR_TOOL_ID_LENGTH, rekorToolIdSchema, DATA_PROXY_MOUNT, DATA_PROXY_PREFIX, REKOR_V1_PREFIX, DATA_PROXY_ORG_QUERY_PARAM, MAX_PROVISIONING_BODY_BYTES, dataProxyQuery, rekorAttestation, REQUIRED_REKOR_ATTESTATION_HEADERS, BASE_DESTRUCTION_MOUNT, BASE_DESTRUCTION_PREFIX, BASE_DESTRUCTION_CONFIRM_PATH, baseDestructionConfirmBody, BASE_DESTRUCTION_GRACE_MS, BASE_DESTRUCTION_CONFIRM_TTL_MS, BASE_DESTRUCTION_ORG_QUERY_PARAM, baseDestructionQuery, baseDestructionParam, baseDestructionInitiateBody, baseDestructionStatus, baseDestructionRequest, baseDestructionListResponse, baseDestructionInitiateResponse, baseDestructionConfirmResponse, baseDestructionCancelResponse, rekorBaseChangeMessageSchema, PEOPLE_CONTACT_PAGE_MAX, PEOPLE_CONTACT_PAGE_DEFAULT, PEOPLE_CONTACT_EMAIL_MAX_LENGTH, peopleUserIdSchema, peopleInviteEmailSchema, peopleContactInviteBody, peopleContactInviteIdParam, peopleContactUserIdParam, peopleContactBlockBody, peopleContactPageQuery, peopleOutgoingInviteSchema, peopleContactPersonSchema, peopleContactSchema, peopleIncomingInviteSchema, peopleBlockedUserSchema, PEOPLE_THREAD_MESSAGE_MAX_LENGTH, PEOPLE_THREAD_MESSAGES_PAGE_MAX, PEOPLE_THREAD_PAGE_MAX, PEOPLE_THREAD_PAGE_DEFAULT, PEOPLE_GROUP_NAME_MAX_LENGTH, PEOPLE_GROUP_AVATAR_URL_MAX_LENGTH, PEOPLE_THREAD_ATTACHMENT_MAX_BYTES, PEOPLE_THREAD_ATTACHMENT_NAME_MAX_LENGTH, PEOPLE_ATTACHMENT_STORAGE_PER_USER_BYTES, PEOPLE_THREAD_ATTACHMENT_MAX_MB, PEOPLE_THREAD_ATTACHMENT_URL_TTL_SECONDS, PEOPLE_THREAD_ATTACHMENT_URLS_MAX, peopleThreadIdParam, peopleThreadMessageIdParam, peopleThreadListQuery, peopleThreadMessagesQuery, peopleThreadAttachmentUploadSchema, peopleThreadSendBody, peopleThreadAttachmentUrlsBody, peopleThreadReadBody, peopleThreadSettingsBody, peopleGroupNameSchema, peopleGroupAvatarUrlSchema, peopleGroupCreateBody, peopleOrgDirectBody, peopleGroupUpdateBody, peopleGroupInviteBody, peopleOrgErasureBody, peopleGroupLeaveBody, peopleGroupInviteIdParam, peopleGroupIncomingInviteIdParam, peopleGroupMemberParam, peopleThreadKindSchema, peopleThreadMemberSchema, peopleThreadLastMessageSchema, peopleGroupRoleSchema, peopleGroupSummarySchema, peopleThreadSummarySchema, peopleThreadAttachmentSchema, peopleThreadMessageSchema, peopleGroupMemberSchema, peopleGroupSentInviteSchema, peopleGroupIncomingInviteSchema, PEOPLE_REPORT_DETAILS_MAX_LENGTH, peopleReportReasonSchema, reportDetailsSchema, reportFields, peopleReportBody, PEOPLE_MODERATION_NOTE_MAX_LENGTH, ADMIN_PEOPLE_REPORTS_PAGE_MAX, ADMIN_PEOPLE_REPORTS_PAGE_DEFAULT, peopleModerationActionSchema, moderationNoteSchema, adminPeopleReportListQuery, adminPeopleReportIdParam, adminPeopleMessageRemovalBody, adminPeopleSuspendBody, adminPeopleNoteBody, COMMUNITIES_PER_ORG_MAX, COMMUNITY_NAME_MAX_LENGTH, COMMUNITY_REGISTRY_CLOSED_REASON, COMMUNITY_JOIN_SOURCE_MAX_LENGTH, COMMUNITY_JOIN_FLOW_TOKEN_MAX_LENGTH, COMMUNITY_ROOM_NAME_MAX_LENGTH, COMMUNITY_MESSAGE_MAX_LENGTH, COMMUNITY_MESSAGES_PAGE_SIZE, COMMUNITY_ATTACHMENT_URLS_MAX, COMMUNITY_POST_TITLE_MAX_LENGTH, COMMUNITY_POST_SEARCH_MAX_LENGTH, COMMUNITY_RULES_MAX_LENGTH, COMMUNITY_SLOW_MODE_MAX_SECONDS, COMMUNITY_COURSES_LABEL_MAX_LENGTH, COMMUNITY_LIVE_TICKET_PREFIX, communityNameSchema, adminCreateCommunityBody, communityIdParam, communityJoinTokenSchema, communityJoinSourceSchema, communityJoinPreviewQuery, communityJoinBody, communityRoomKindSchema, communityRoomNameSchema, communityRoomIdParam, communityMessageIdParam, communityRoomCreateBody, communityRoomUpdateBody, communityMessagesQuery, communityMessageBodySchema, communityPostTitleSchema, communityAttachmentUploadSchema, communitySendBody, communityEditBody, communityPostIdParam, communityPostsQuery, communityAnswerBody, communityReadBody, communityAttachmentUrlsBody, communityPersonParam, communityOrgParam, communityPeopleQuery, communityCoursesLabelSchema, communitySettingsBody, communityBanBody, communityLockBody, communityPinBody, communityModLogQuery, communityReportsQuery, communityReportIdParam, communityLiveTicketSchema, communityLiveQuery, communityMuteBody, communityEmailUnsubscribeTokenSchema, COMMUNITY_EMAIL_UNSUBSCRIBE_PATH, communityEmailUnsubscribeQuery, COMMUNITY_COURSE_TITLE_MAX_LENGTH, COMMUNITY_COURSE_DESCRIPTION_MAX_LENGTH, COMMUNITY_LESSON_BODY_MAX_LENGTH, COMMUNITY_LESSON_LINKS_MAX, COMMUNITY_LESSON_URL_MAX_LENGTH, YOUTUBE_ID, YOUTUBE_HOSTS, YOUTU_BE, YOUTUBE_ID_PATH, communityCourseIdParam, communityCourseModuleIdParam, communityLessonIdParam, communityCourseTitleSchema, communityCourseDescriptionSchema, communityCoursePositionSchema, communityLessonVideoUrlSchema, communityLessonLinkSchema, communityLessonLinksSchema, communityLessonBodySchema, communityCourseCreateBody, communityCourseUpdateBody, communityModuleCreateBody, communityModuleUpdateBody, communityLessonCreateBody, communityLessonUpdateBody, COMMUNITY_LESSON_TREE_MAX_BYTES, COMMUNITY_LESSON_LINK_PROTOCOLS, LINK_SCHEME;
9434
+ var init_chunk_UBWCEXTH = __esm({
9435
+ "../../packages/core/dist/chunk-UBWCEXTH.js"() {
9422
9436
  "use strict";
9423
- init_chunk_FJKE7WIF();
9424
- init_chunk_IYXLMIWU();
9425
- init_chunk_XNDI2XQA();
9437
+ init_chunk_POL7B3EM();
9438
+ init_chunk_NCJ3EXN7();
9439
+ init_chunk_3NS3HULK();
9426
9440
  init_chunk_MIWZOSPI();
9427
9441
  init_chunk_XJDAH2N7();
9428
9442
  init_chunk_JWPRTSIB();
@@ -9479,6 +9493,7 @@ var init_chunk_GTV7SIKE = __esm({
9479
9493
  init_zod();
9480
9494
  init_zod();
9481
9495
  init_zod();
9496
+ init_zod();
9482
9497
  primaryRegionSchema = external_exports.enum([
9483
9498
  "wnam",
9484
9499
  "enam",
@@ -9534,6 +9549,7 @@ var init_chunk_GTV7SIKE = __esm({
9534
9549
  const trimmed = v.trim();
9535
9550
  return trimmed || null;
9536
9551
  });
9552
+ hubTagsField = external_exports.array(external_exports.string()).nullable().optional();
9537
9553
  createHubBody = external_exports.object({
9538
9554
  organization_id: uuidSchema,
9539
9555
  hub_name: external_exports.string().min(1, "hub_name is required"),
@@ -9544,7 +9560,10 @@ var init_chunk_GTV7SIKE = __esm({
9544
9560
  // (change via `wayai relabel` / replicate); the push diff never writes it.
9545
9561
  preview_label: previewLabelField,
9546
9562
  // Write-once at creation; updateHubBody does not accept this.
9547
- primary_region: primaryRegionSchema.optional()
9563
+ primary_region: primaryRegionSchema.optional(),
9564
+ // Org tag ids. Ids that name none of the org's tags are dropped; a hub created with
9565
+ // any is a tag change (`hubTagChangeRefusalSchema`).
9566
+ tags: hubTagsField
9548
9567
  }).passthrough().superRefine(refineLaneReferences);
9549
9568
  updateHubBody = external_exports.object({
9550
9569
  support_model: external_exports.enum(["conversation", "account"]).optional(),
@@ -9589,8 +9608,19 @@ var init_chunk_GTV7SIKE = __esm({
9589
9608
  // connection id on this hub (a REST API (custom tool) connection whose base_url
9590
9609
  // is the Rekor API origin + a bearer/api_key `write:seeds` token). Validated at
9591
9610
  // set-time on the REST PATCH (setup/hubs.ts). Nullable to clear it.
9592
- seed_connection_id: uuidSchema.nullable().optional()
9611
+ seed_connection_id: uuidSchema.nullable().optional(),
9612
+ // Org tag ids, replacing the hub's; null clears them. A change is refused to anyone
9613
+ // but an org admin (`hubTagChangeRefusalSchema`).
9614
+ tags: hubTagsField
9593
9615
  }).passthrough().superRefine(refineLaneReferences);
9616
+ HUB_TAG_CHANGE_REFUSED = "hub_tag_change_requires_org_admin";
9617
+ hubTagChangeRefusalSchema = external_exports.object({
9618
+ reason: external_exports.literal(HUB_TAG_CHANGE_REFUSED),
9619
+ operation: external_exports.enum(["update", "publish"]),
9620
+ hub_id: external_exports.string(),
9621
+ tags_added: external_exports.array(external_exports.string()),
9622
+ tags_removed: external_exports.array(external_exports.string())
9623
+ });
9594
9624
  addHubAdminBody = external_exports.object({
9595
9625
  user_email: external_exports.string().email("valid email is required")
9596
9626
  });
@@ -10673,7 +10703,14 @@ var init_chunk_GTV7SIKE = __esm({
10673
10703
  * with it receives thread pushes, whose `data` carries `thread_id` and no `conversation_id`.
10674
10704
  * Each registration states it afresh, so a build that sends none clears it.
10675
10705
  */
10676
- supports_threads: external_exports.boolean().optional()
10706
+ supports_threads: external_exports.boolean().optional(),
10707
+ /**
10708
+ * The build opens a community from a push (gh #4872 Decision 8): only a token registered with it
10709
+ * receives a community's pushes (an announcement, a reply to the member's forum post), whose
10710
+ * `data` is `CommunityPushData` — never a `conversation_id` or a `thread_id`. Each registration
10711
+ * states it afresh, so a build that sends none clears it.
10712
+ */
10713
+ supports_communities: external_exports.boolean().optional()
10677
10714
  });
10678
10715
  deletePushTokenQuery = external_exports.object({
10679
10716
  token: external_exports.string().min(1).max(512)
@@ -11001,7 +11038,7 @@ var init_chunk_GTV7SIKE = __esm({
11001
11038
  });
11002
11039
  sendWhatsAppTemplateBody = external_exports.object({
11003
11040
  hub_id: external_exports.string().uuid(),
11004
- /** HubDO outbound_template.template_id. */
11041
+ /** HubDO message_template.template_id. */
11005
11042
  template_id: external_exports.string().min(1).max(128),
11006
11043
  /** The conversation's end user (customer). Bounded like `claimBody.user_id`. */
11007
11044
  user_receiver_id: external_exports.string().regex(SAFE_USER_ID_REGEX),
@@ -11170,9 +11207,6 @@ var init_chunk_GTV7SIKE = __esm({
11170
11207
  filePath: external_exports.string(),
11171
11208
  expiresIn: external_exports.number().int().positive().max(SIGN_URL_MAX_EXPIRES_IN_SECONDS).optional()
11172
11209
  });
11173
- outboundSchemaQuery = external_exports.object({
11174
- type: external_exports.enum(["whatsapp", "email", "app", "all"]).default("all")
11175
- });
11176
11210
  templateIdParam = external_exports.object({
11177
11211
  id: external_exports.string().uuid()
11178
11212
  });
@@ -11259,45 +11293,62 @@ var init_chunk_GTV7SIKE = __esm({
11259
11293
  removeListContactsBody = external_exports.object({
11260
11294
  contact_ids: external_exports.array(external_exports.string().uuid()).min(1)
11261
11295
  });
11262
- scheduleIdParam = external_exports.object({
11296
+ AUTOMATION_TRIGGER_TYPES = ["schedule", "event", "webhook"];
11297
+ AUTOMATION_TARGET_TYPES = ["none", "contact_list"];
11298
+ AUTOMATION_ACTION_TYPES = ["run_agent", "send_message"];
11299
+ AUTOMATION_CHANNEL_TYPES = ["whatsapp", "instagram", "email", "app"];
11300
+ AUTOMATION_NAME_MAX = 100;
11301
+ AUTOMATION_DESCRIPTION_MAX = 1e3;
11302
+ AUTOMATION_INSTRUCTIONS_MAX = 1e4;
11303
+ AUTOMATION_TEXT_MAX = 4096;
11304
+ AUTOMATION_CRON_MAX = 512;
11305
+ automationTriggerSchema = external_exports.object({
11306
+ type: external_exports.enum(AUTOMATION_TRIGGER_TYPES),
11307
+ cron: external_exports.string().trim().min(1).max(AUTOMATION_CRON_MAX).optional(),
11308
+ timezone: external_exports.string().trim().min(1).optional()
11309
+ }).strict();
11310
+ automationTargetSchema = external_exports.object({
11311
+ type: external_exports.enum(AUTOMATION_TARGET_TYPES),
11312
+ list_id: external_exports.string().uuid().optional()
11313
+ }).strict();
11314
+ automationActionSchema = external_exports.object({
11315
+ type: external_exports.enum(AUTOMATION_ACTION_TYPES),
11316
+ channel: external_exports.enum(AUTOMATION_CHANNEL_TYPES).optional(),
11317
+ connection_id: external_exports.string().uuid().nullable().optional(),
11318
+ template_id: external_exports.string().uuid().nullable().optional(),
11319
+ text: external_exports.string().max(AUTOMATION_TEXT_MAX).nullable().optional(),
11320
+ agent_id: external_exports.string().uuid().nullable().optional(),
11321
+ instructions: external_exports.string().max(AUTOMATION_INSTRUCTIONS_MAX).nullable().optional()
11322
+ }).strict();
11323
+ automationName = external_exports.string().trim().min(1).max(AUTOMATION_NAME_MAX);
11324
+ automationDescription = external_exports.string().max(AUTOMATION_DESCRIPTION_MAX).nullable().optional();
11325
+ automationIdParam = external_exports.object({
11263
11326
  id: external_exports.string().uuid()
11264
11327
  });
11265
- listSchedulesQuery = external_exports.object({
11328
+ automationHubQuery = external_exports.object({
11266
11329
  hub_id: external_exports.string().uuid()
11267
11330
  });
11268
- listExecutionsQuery = external_exports.object({
11331
+ AUTOMATION_RUNS_PAGE_MAX = 50;
11332
+ listAutomationRunsQuery = external_exports.object({
11333
+ hub_id: external_exports.string().uuid(),
11269
11334
  page: external_exports.coerce.number().int().min(1).default(1),
11270
- per_page: external_exports.coerce.number().int().min(1).max(50).default(10)
11335
+ per_page: external_exports.coerce.number().int().min(1).max(AUTOMATION_RUNS_PAGE_MAX).default(10)
11271
11336
  });
11272
- createScheduleBody = external_exports.object({
11337
+ createAutomationBody = external_exports.object({
11273
11338
  hub_id: external_exports.string().uuid(),
11274
- schedule_name: external_exports.string().min(1),
11275
- description: external_exports.string().nullable().optional(),
11276
- cron_expression: external_exports.string().min(1),
11277
- timezone: external_exports.string().default("UTC"),
11278
- list_id: external_exports.string().uuid(),
11279
- channel_type: external_exports.enum(["whatsapp", "instagram", "email", "app"]),
11280
- connection_id: external_exports.string().uuid().nullable().optional(),
11281
- execution_mode: external_exports.enum(["direct_message", "agent_trigger"]).default("direct_message"),
11282
- template_whatsapp_id: external_exports.string().uuid().nullable().optional(),
11283
- initial_message: external_exports.string().nullable().optional(),
11284
- agent_id: external_exports.string().uuid().nullable().optional(),
11285
- trigger_message: external_exports.string().nullable().optional()
11286
- });
11287
- updateScheduleBody = external_exports.object({
11288
- schedule_name: external_exports.string().min(1).optional(),
11289
- description: external_exports.string().nullable().optional(),
11290
- cron_expression: external_exports.string().min(1).optional(),
11291
- timezone: external_exports.string().optional(),
11292
- list_id: external_exports.string().uuid().optional(),
11293
- channel_type: external_exports.enum(["whatsapp", "instagram", "email", "app"]).optional(),
11294
- connection_id: external_exports.string().uuid().nullable().optional(),
11295
- execution_mode: external_exports.enum(["direct_message", "agent_trigger"]).optional(),
11296
- template_whatsapp_id: external_exports.string().uuid().nullable().optional(),
11297
- initial_message: external_exports.string().nullable().optional(),
11298
- agent_id: external_exports.string().uuid().nullable().optional(),
11299
- trigger_message: external_exports.string().nullable().optional()
11300
- });
11339
+ name: automationName,
11340
+ description: automationDescription,
11341
+ trigger: automationTriggerSchema,
11342
+ target: automationTargetSchema,
11343
+ action: automationActionSchema
11344
+ }).strict();
11345
+ updateAutomationBody = external_exports.object({
11346
+ name: automationName.optional(),
11347
+ description: automationDescription,
11348
+ trigger: automationTriggerSchema.optional(),
11349
+ target: automationTargetSchema.optional(),
11350
+ action: automationActionSchema.optional()
11351
+ }).strict();
11301
11352
  VERSION_PART = "(0|[1-9][0-9]{0,5})";
11302
11353
  MOBILE_APP_VERSION_RE = new RegExp(`^${VERSION_PART}\\.${VERSION_PART}\\.${VERSION_PART}$`);
11303
11354
  mobileAppVersionSchema = external_exports.string().regex(MOBILE_APP_VERSION_RE, "must be a MAJOR.MINOR.PATCH version, e.g. 1.0.0");
@@ -11470,7 +11521,6 @@ var init_chunk_GTV7SIKE = __esm({
11470
11521
  "eval",
11471
11522
  "mcp_tool",
11472
11523
  "outbound_contact",
11473
- "outbound_schedule",
11474
11524
  "resource",
11475
11525
  "resource_folder",
11476
11526
  "tool"
@@ -12415,10 +12465,14 @@ var init_chunk_GTV7SIKE = __esm({
12415
12465
  COMMUNITY_JOIN_FLOW_TOKEN_MAX_LENGTH = 128;
12416
12466
  COMMUNITY_ROOM_NAME_MAX_LENGTH = 100;
12417
12467
  COMMUNITY_MESSAGE_MAX_LENGTH = 4e3;
12468
+ COMMUNITY_MESSAGES_PAGE_SIZE = 50;
12469
+ COMMUNITY_ATTACHMENT_URLS_MAX = COMMUNITY_MESSAGES_PAGE_SIZE + 2;
12418
12470
  COMMUNITY_POST_TITLE_MAX_LENGTH = 200;
12419
12471
  COMMUNITY_POST_SEARCH_MAX_LENGTH = 100;
12420
12472
  COMMUNITY_RULES_MAX_LENGTH = 4e3;
12421
12473
  COMMUNITY_SLOW_MODE_MAX_SECONDS = 21600;
12474
+ COMMUNITY_COURSES_LABEL_MAX_LENGTH = 16;
12475
+ COMMUNITY_LIVE_TICKET_PREFIX = "cst";
12422
12476
  communityNameSchema = external_exports.string().trim().min(1).max(COMMUNITY_NAME_MAX_LENGTH);
12423
12477
  adminCreateCommunityBody = external_exports.object({ org_id: uuidSchema, name: communityNameSchema }).strict();
12424
12478
  communityIdParam = external_exports.object({ communityId: uuidSchema });
@@ -12442,12 +12496,14 @@ var init_chunk_GTV7SIKE = __esm({
12442
12496
  }).refine((q) => q.before === void 0 || q.after === void 0, "before and after cannot be combined");
12443
12497
  communityMessageBodySchema = external_exports.string().max(COMMUNITY_MESSAGE_MAX_LENGTH).refine((body) => body.trim().length > 0, "must not be empty");
12444
12498
  communityPostTitleSchema = external_exports.string().trim().min(1).max(COMMUNITY_POST_TITLE_MAX_LENGTH);
12499
+ communityAttachmentUploadSchema = peopleThreadAttachmentUploadSchema;
12445
12500
  communitySendBody = external_exports.object({
12446
- body: communityMessageBodySchema,
12501
+ body: external_exports.string().max(COMMUNITY_MESSAGE_MAX_LENGTH).default(""),
12447
12502
  client_message_id: uuidSchema.optional(),
12448
12503
  title: communityPostTitleSchema.optional(),
12449
- parent_message_id: uuidSchema.optional()
12450
- }).strict().refine((b) => b.title === void 0 || b.parent_message_id === void 0, "a post is not a reply: send a title or a parent_message_id, not both");
12504
+ parent_message_id: uuidSchema.optional(),
12505
+ attachment: communityAttachmentUploadSchema.optional()
12506
+ }).strict().refine((b) => b.title === void 0 || b.parent_message_id === void 0, "a post is not a reply: send a title or a parent_message_id, not both").refine((b) => b.body.trim().length > 0 || b.attachment !== void 0, { message: "must not be empty", path: ["body"] });
12451
12507
  communityEditBody = external_exports.object({ body: communityMessageBodySchema, title: communityPostTitleSchema.optional() }).strict();
12452
12508
  communityPostIdParam = external_exports.object({ communityId: uuidSchema, roomId: uuidSchema, postId: uuidSchema });
12453
12509
  communityPostsQuery = external_exports.object({
@@ -12457,13 +12513,16 @@ var init_chunk_GTV7SIKE = __esm({
12457
12513
  });
12458
12514
  communityAnswerBody = external_exports.object({ reply_id: uuidSchema.nullable() }).strict();
12459
12515
  communityReadBody = external_exports.object({ seq: external_exports.number().int().min(0) }).strict();
12516
+ communityAttachmentUrlsBody = external_exports.object({ attachment_ids: external_exports.array(uuidSchema).min(1).max(COMMUNITY_ATTACHMENT_URLS_MAX) }).strict();
12460
12517
  communityPersonParam = external_exports.object({ communityId: uuidSchema, userId: peopleUserIdSchema });
12461
12518
  communityOrgParam = external_exports.object({ orgId: uuidSchema });
12462
12519
  communityPeopleQuery = external_exports.object({ after: peopleUserIdSchema.optional() });
12520
+ communityCoursesLabelSchema = external_exports.string().trim().max(COMMUNITY_COURSES_LABEL_MAX_LENGTH);
12463
12521
  communitySettingsBody = external_exports.object({
12464
12522
  rules: external_exports.string().trim().max(COMMUNITY_RULES_MAX_LENGTH).nullable().optional().transform((rules) => rules === "" ? null : rules),
12465
- slow_mode_seconds: external_exports.number().int().min(0).max(COMMUNITY_SLOW_MODE_MAX_SECONDS).optional()
12466
- }).strict().refine((b) => b.rules !== void 0 || b.slow_mode_seconds !== void 0, "nothing to change");
12523
+ slow_mode_seconds: external_exports.number().int().min(0).max(COMMUNITY_SLOW_MODE_MAX_SECONDS).optional(),
12524
+ courses_label: communityCoursesLabelSchema.optional()
12525
+ }).strict().refine((b) => b.rules !== void 0 || b.slow_mode_seconds !== void 0 || b.courses_label !== void 0, "nothing to change");
12467
12526
  communityBanBody = external_exports.object({ delete_messages: external_exports.boolean().optional() }).strict();
12468
12527
  communityLockBody = external_exports.object({ locked: external_exports.boolean() }).strict();
12469
12528
  communityPinBody = external_exports.object({ pinned: external_exports.boolean() }).strict();
@@ -12472,6 +12531,71 @@ var init_chunk_GTV7SIKE = __esm({
12472
12531
  pending: external_exports.enum(["true", "false"]).optional().transform((value) => value === "true")
12473
12532
  });
12474
12533
  communityReportIdParam = external_exports.object({ communityId: uuidSchema, reportId: uuidSchema });
12534
+ communityLiveTicketSchema = external_exports.string().regex(new RegExp(`^${COMMUNITY_LIVE_TICKET_PREFIX}_[A-Za-z0-9_-]{43}$`));
12535
+ communityLiveQuery = external_exports.object({ ticket: communityLiveTicketSchema });
12536
+ communityMuteBody = external_exports.object({ muted: external_exports.boolean() }).strict();
12537
+ communityEmailUnsubscribeTokenSchema = external_exports.string().max(200).regex(/^[0-9a-f-]{36}\.[A-Za-z0-9_-]{1,64}\.[0-9a-f]{64}$/i);
12538
+ COMMUNITY_EMAIL_UNSUBSCRIBE_PATH = "/api/communities/email-unsubscribe";
12539
+ communityEmailUnsubscribeQuery = external_exports.object({ token: communityEmailUnsubscribeTokenSchema });
12540
+ COMMUNITY_COURSE_TITLE_MAX_LENGTH = 200;
12541
+ COMMUNITY_COURSE_DESCRIPTION_MAX_LENGTH = 2e3;
12542
+ COMMUNITY_LESSON_BODY_MAX_LENGTH = 2e4;
12543
+ COMMUNITY_LESSON_LINKS_MAX = 10;
12544
+ COMMUNITY_LESSON_URL_MAX_LENGTH = 2e3;
12545
+ YOUTUBE_ID = /^[A-Za-z0-9_-]{11}$/;
12546
+ YOUTUBE_HOSTS = /* @__PURE__ */ new Set(["youtube.com", "www.youtube.com", "m.youtube.com", "youtube-nocookie.com", "www.youtube-nocookie.com"]);
12547
+ YOUTU_BE = "youtu.be";
12548
+ YOUTUBE_ID_PATH = /^\/(?:embed|shorts|live|v)\/([A-Za-z0-9_-]{11})\/?$/;
12549
+ communityCourseIdParam = external_exports.object({ communityId: uuidSchema, courseId: uuidSchema });
12550
+ communityCourseModuleIdParam = external_exports.object({ communityId: uuidSchema, courseId: uuidSchema, moduleId: uuidSchema });
12551
+ communityLessonIdParam = external_exports.object({ communityId: uuidSchema, courseId: uuidSchema, lessonId: uuidSchema });
12552
+ communityCourseTitleSchema = external_exports.string().trim().min(1).max(COMMUNITY_COURSE_TITLE_MAX_LENGTH);
12553
+ communityCourseDescriptionSchema = external_exports.string().trim().max(COMMUNITY_COURSE_DESCRIPTION_MAX_LENGTH);
12554
+ communityCoursePositionSchema = external_exports.number().int().min(0);
12555
+ communityLessonVideoUrlSchema = external_exports.string().trim().max(COMMUNITY_LESSON_URL_MAX_LENGTH).transform((url, ctx) => {
12556
+ const video = parseCommunityLessonVideoUrl(url);
12557
+ if (video) return video;
12558
+ ctx.addIssue({ code: external_exports.ZodIssueCode.custom, message: "Only a YouTube video URL is accepted" });
12559
+ return external_exports.NEVER;
12560
+ });
12561
+ communityLessonLinkSchema = external_exports.object({
12562
+ title: communityCourseTitleSchema,
12563
+ url: external_exports.string().trim().max(COMMUNITY_LESSON_URL_MAX_LENGTH).url().refine((url) => /^https?:\/\//i.test(url), "must be an http or https URL")
12564
+ }).strict();
12565
+ communityLessonLinksSchema = external_exports.array(communityLessonLinkSchema).max(COMMUNITY_LESSON_LINKS_MAX);
12566
+ communityLessonBodySchema = external_exports.string().max(COMMUNITY_LESSON_BODY_MAX_LENGTH);
12567
+ communityCourseCreateBody = external_exports.object({ title: communityCourseTitleSchema, description: communityCourseDescriptionSchema.optional() }).strict();
12568
+ communityCourseUpdateBody = external_exports.object({
12569
+ title: communityCourseTitleSchema.optional(),
12570
+ description: communityCourseDescriptionSchema.optional(),
12571
+ position: communityCoursePositionSchema.optional(),
12572
+ published: external_exports.boolean().optional()
12573
+ }).strict().refine((b) => Object.values(b).some((value) => value !== void 0), "nothing to change");
12574
+ communityModuleCreateBody = external_exports.object({ title: communityCourseTitleSchema }).strict();
12575
+ communityModuleUpdateBody = external_exports.object({ title: communityCourseTitleSchema.optional(), position: communityCoursePositionSchema.optional() }).strict().refine((b) => b.title !== void 0 || b.position !== void 0, "nothing to change");
12576
+ communityLessonCreateBody = external_exports.object({
12577
+ module_id: uuidSchema,
12578
+ title: communityCourseTitleSchema,
12579
+ video_url: communityLessonVideoUrlSchema.nullable().optional(),
12580
+ body: communityLessonBodySchema.optional(),
12581
+ links: communityLessonLinksSchema.optional(),
12582
+ room_id: uuidSchema.nullable().optional(),
12583
+ requires_paid_plan: external_exports.boolean().optional()
12584
+ }).strict();
12585
+ communityLessonUpdateBody = external_exports.object({
12586
+ module_id: uuidSchema.optional(),
12587
+ title: communityCourseTitleSchema.optional(),
12588
+ video_url: communityLessonVideoUrlSchema.nullable().optional(),
12589
+ body: communityLessonBodySchema.optional(),
12590
+ links: communityLessonLinksSchema.optional(),
12591
+ room_id: uuidSchema.nullable().optional(),
12592
+ requires_paid_plan: external_exports.boolean().optional(),
12593
+ position: communityCoursePositionSchema.optional(),
12594
+ published: external_exports.boolean().optional()
12595
+ }).strict().refine((b) => Object.values(b).some((value) => value !== void 0), "nothing to change");
12596
+ COMMUNITY_LESSON_TREE_MAX_BYTES = 512 * 1024;
12597
+ COMMUNITY_LESSON_LINK_PROTOCOLS = ["http", "https", "mailto"];
12598
+ LINK_SCHEME = new RegExp(`^(${COMMUNITY_LESSON_LINK_PROTOCOLS.join("|")}):`, "i");
12475
12599
  }
12476
12600
  });
12477
12601
 
@@ -12574,20 +12698,20 @@ var init_chunk_R5WRRHCL = __esm({
12574
12698
  var init_contracts = __esm({
12575
12699
  "../../packages/core/dist/contracts/index.js"() {
12576
12700
  "use strict";
12577
- init_chunk_GTV7SIKE();
12578
- init_chunk_FJKE7WIF();
12579
- init_chunk_IYXLMIWU();
12580
- init_chunk_YX7EL2HJ();
12701
+ init_chunk_UBWCEXTH();
12702
+ init_chunk_POL7B3EM();
12703
+ init_chunk_NCJ3EXN7();
12704
+ init_chunk_SNA2DXAC();
12581
12705
  init_chunk_R5WRRHCL();
12582
12706
  init_chunk_IBL7FANV();
12583
12707
  init_chunk_C2UEA2KW();
12584
- init_chunk_XNDI2XQA();
12708
+ init_chunk_3NS3HULK();
12585
12709
  init_chunk_MIWZOSPI();
12586
12710
  init_chunk_XJDAH2N7();
12587
12711
  init_chunk_JWPRTSIB();
12588
12712
  init_chunk_T7KQKDET();
12589
12713
  init_chunk_L5F7ZOUJ();
12590
- init_chunk_SSN6QPMX();
12714
+ init_chunk_2ISUBJG7();
12591
12715
  }
12592
12716
  });
12593
12717
 
@@ -13587,42 +13711,6 @@ var init_chunk_BF4WRSOQ = __esm({
13587
13711
  }
13588
13712
  });
13589
13713
 
13590
- // ../../packages/core/dist/chunk-A5NDENFB.js
13591
- var decisionAnswerSchema, decisionsResponseSchema;
13592
- var init_chunk_A5NDENFB = __esm({
13593
- "../../packages/core/dist/chunk-A5NDENFB.js"() {
13594
- "use strict";
13595
- init_zod();
13596
- decisionAnswerSchema = external_exports.discriminatedUnion("type", [
13597
- external_exports.object({
13598
- type: external_exports.literal("choice"),
13599
- choice: external_exports.string(),
13600
- confidence: external_exports.number().optional()
13601
- }),
13602
- external_exports.object({
13603
- type: external_exports.literal("score"),
13604
- score: external_exports.number(),
13605
- confidence: external_exports.number().optional()
13606
- }),
13607
- external_exports.object({
13608
- type: external_exports.literal("noul"),
13609
- noul: external_exports.number()
13610
- })
13611
- ]);
13612
- decisionsResponseSchema = external_exports.object({
13613
- id: external_exports.string().optional(),
13614
- model: external_exports.string().optional(),
13615
- provider: external_exports.string().optional(),
13616
- answers: external_exports.record(decisionAnswerSchema),
13617
- usage: external_exports.object({
13618
- input_tokens: external_exports.number().optional(),
13619
- output_tokens: external_exports.number().optional(),
13620
- cost: external_exports.number().optional()
13621
- }).optional()
13622
- });
13623
- }
13624
- });
13625
-
13626
13714
  // ../../packages/core/dist/chunk-R7VSUKKX.js
13627
13715
  function isPublicIdentifier(value) {
13628
13716
  return UUID_RE.test(value) || HEX_RE.test(value) || WORKOS_ID_RE.test(value) || TRACE_HEADER_RE.test(value);
@@ -13826,7 +13914,7 @@ var init_chunk_MHWOQS63 = __esm({
13826
13914
  }
13827
13915
  });
13828
13916
 
13829
- // ../../packages/core/dist/chunk-Q4KTDDYO.js
13917
+ // ../../packages/core/dist/chunk-ERFR7IRY.js
13830
13918
  function findStepBoundaries(transcript) {
13831
13919
  const out = [];
13832
13920
  const n = transcript.length;
@@ -13861,10 +13949,10 @@ function findStepBoundaries(transcript) {
13861
13949
  }
13862
13950
  return out;
13863
13951
  }
13864
- var init_chunk_Q4KTDDYO = __esm({
13865
- "../../packages/core/dist/chunk-Q4KTDDYO.js"() {
13952
+ var init_chunk_ERFR7IRY = __esm({
13953
+ "../../packages/core/dist/chunk-ERFR7IRY.js"() {
13866
13954
  "use strict";
13867
- init_chunk_SSN6QPMX();
13955
+ init_chunk_2ISUBJG7();
13868
13956
  }
13869
13957
  });
13870
13958
 
@@ -13896,27 +13984,26 @@ var ENDPOINT_CONFIGS, WAYAI_WORKSPACE_LAYOUT;
13896
13984
  var init_dist = __esm({
13897
13985
  "../../packages/core/dist/index.js"() {
13898
13986
  "use strict";
13899
- init_chunk_GTV7SIKE();
13900
- init_chunk_FJKE7WIF();
13901
- init_chunk_IYXLMIWU();
13902
- init_chunk_YX7EL2HJ();
13987
+ init_chunk_UBWCEXTH();
13988
+ init_chunk_POL7B3EM();
13989
+ init_chunk_NCJ3EXN7();
13990
+ init_chunk_SNA2DXAC();
13903
13991
  init_chunk_R5WRRHCL();
13904
13992
  init_chunk_IBL7FANV();
13905
13993
  init_chunk_IOJOM4DE();
13906
13994
  init_chunk_C2UEA2KW();
13907
- init_chunk_XNDI2XQA();
13995
+ init_chunk_3NS3HULK();
13908
13996
  init_chunk_MIWZOSPI();
13909
13997
  init_chunk_5UOHWWD5();
13910
13998
  init_chunk_XJDAH2N7();
13911
13999
  init_chunk_JWPRTSIB();
13912
14000
  init_chunk_BF4WRSOQ();
13913
- init_chunk_A5NDENFB();
13914
14001
  init_chunk_T7KQKDET();
13915
14002
  init_chunk_L5F7ZOUJ();
13916
14003
  init_chunk_MHWOQS63();
13917
14004
  init_chunk_R7VSUKKX();
13918
- init_chunk_Q4KTDDYO();
13919
- init_chunk_SSN6QPMX();
14005
+ init_chunk_ERFR7IRY();
14006
+ init_chunk_2ISUBJG7();
13920
14007
  init_chunk_FEOO3UPS();
13921
14008
  ENDPOINT_CONFIGS = {
13922
14009
  // OAuth callbacks - strict, fail-closed (prevent brute force)
@@ -14003,6 +14090,18 @@ var init_dist = __esm({
14003
14090
  skipAuthenticatedUsers: true,
14004
14091
  userLimitKey: "/api/outbound/*"
14005
14092
  },
14093
+ "/api/automations/*": {
14094
+ tier: "STANDARD",
14095
+ userLimit: 150,
14096
+ skipAuthenticatedUsers: true,
14097
+ userLimitKey: "/api/automations/*"
14098
+ },
14099
+ "/api/message-templates/*": {
14100
+ tier: "STANDARD",
14101
+ userLimit: 150,
14102
+ skipAuthenticatedUsers: true,
14103
+ userLimitKey: "/api/message-templates/*"
14104
+ },
14006
14105
  "/api/live-updates/*": { tier: "STANDARD", userLimit: 150, skipAuthenticatedUsers: true },
14007
14106
  "/api/hub-users/*": {
14008
14107
  tier: "STANDARD",
@@ -14317,6 +14416,12 @@ var init_dist = __esm({
14317
14416
  // owner-delegated decision 9). MODERATE (30/min per IP) leaves room for reloads and several
14318
14417
  // tabs. An exact key, so it wins over the wildcard above.
14319
14418
  "/api/communities/join-preview": { tier: "MODERATE" },
14419
+ // An announcement email's unsubscribe (#4872 PR 8a) — public: its token is its one credential, so
14420
+ // this per-IP limit is its one bound, and runs before the route reads anything. MODERATE (30/min
14421
+ // per IP), not STRICT: mail clients' one-click unsubscribe POSTs it from their own servers, which
14422
+ // many members' clicks share, and STRICT's 5/min bucket is shared with sign-in. An exact key, so
14423
+ // it wins over the wildcard above.
14424
+ [COMMUNITY_EMAIL_UNSUBSCRIBE_PATH]: { tier: "MODERATE" },
14320
14425
  // App channel - high throughput with user limits
14321
14426
  "/channels/app/*": { tier: "HIGH", userLimit: 500, skipAuthenticatedUsers: true },
14322
14427
  // API channel (api-channel-connector) - machine-to-machine, high throughput
@@ -14326,6 +14431,11 @@ var init_dist = __esm({
14326
14431
  "/scheduled/*": { tier: "HIGH", skipAuthenticatedUsers: true },
14327
14432
  // WebSocket - standard with user limit to prevent connection spam
14328
14433
  "/live-updates/ws": { tier: "STANDARD", userLimit: 100, failClosed: true },
14434
+ // A community's live socket (gh #4872 PR 5, `GET /communities/:communityId/live`): outside
14435
+ // `/api/*`, with no bearer token, so its per-IP tier is its one bound before the CommunityDO
14436
+ // checks the ticket. STANDARD, as `/live-updates/ws`: a client opens one per community it shows
14437
+ // and reconnects within the hour.
14438
+ "/communities/*": { tier: "STANDARD" },
14329
14439
  // WS ticket mint - per-user 60/min accommodates aggressive reconnect patterns
14330
14440
  // without opening abuse vectors; fail-closed so Redis outages don't let
14331
14441
  // runaway clients mint unbounded tickets.
@@ -17343,7 +17453,7 @@ import * as path11 from "path";
17343
17453
  import * as crypto3 from "crypto";
17344
17454
  function isBinaryFile(filename) {
17345
17455
  const ext = filename.split(".").pop()?.toLowerCase() || "";
17346
- return BINARY_EXTENSIONS2.has(ext);
17456
+ return BINARY_EXTENSIONS.has(ext);
17347
17457
  }
17348
17458
  function guessMimeType(filename) {
17349
17459
  const ext = filename.split(".").pop()?.toLowerCase() || "";
@@ -17543,13 +17653,13 @@ async function downloadBinaryFiles(resDir, files, root, log) {
17543
17653
  }
17544
17654
  return count;
17545
17655
  }
17546
- var BINARY_EXTENSIONS2, MAX_RESOURCE_FILE_SIZE2;
17656
+ var BINARY_EXTENSIONS, MAX_RESOURCE_FILE_SIZE2;
17547
17657
  var init_resource_files = __esm({
17548
17658
  "src/lib/resource-files.ts"() {
17549
17659
  "use strict";
17550
17660
  init_fs_safety();
17551
17661
  init_contracts();
17552
- BINARY_EXTENSIONS2 = /* @__PURE__ */ new Set([
17662
+ BINARY_EXTENSIONS = /* @__PURE__ */ new Set([
17553
17663
  "pdf",
17554
17664
  "png",
17555
17665
  "jpg",
@@ -17983,8 +18093,11 @@ function parseHubFolder(hubFolder, opts) {
17983
18093
  if (config.outbound_lists && config.outbound_lists.length > 0) {
17984
18094
  payload.outbound_lists = config.outbound_lists;
17985
18095
  }
17986
- if (config.outbound_schedules && config.outbound_schedules.length > 0) {
17987
- payload.outbound_schedules = config.outbound_schedules;
18096
+ if (Array.isArray(config.automations)) {
18097
+ payload.automations = config.automations;
18098
+ }
18099
+ if (config.outbound_schedules !== void 0) {
18100
+ console.warn(" Warning: hub.yaml `outbound_schedules:` is no longer read \u2014 schedules are now `automations:` (see the wayai skill). Its entries were not pushed.");
17988
18101
  }
17989
18102
  const bytesByHash = /* @__PURE__ */ new Map();
17990
18103
  const evals = scanEvalYamlFiles(hubFolder, bytesByHash, unreadable);
@@ -18492,8 +18605,8 @@ function buildYamlPayload(payload) {
18492
18605
  if (payload.outbound_lists && payload.outbound_lists.length > 0) {
18493
18606
  result.outbound_lists = payload.outbound_lists;
18494
18607
  }
18495
- if (payload.outbound_schedules && payload.outbound_schedules.length > 0) {
18496
- result.outbound_schedules = payload.outbound_schedules;
18608
+ if (payload.automations && payload.automations.length > 0) {
18609
+ result.automations = payload.automations;
18497
18610
  }
18498
18611
  return result;
18499
18612
  }
@@ -20021,9 +20134,9 @@ Sync complete. Preview hub: ${result.preview_hub_id}`);
20021
20134
  if (c.outbound_lists_created > 0) parts.push(`${c.outbound_lists_created} outbound list(s) created`);
20022
20135
  if (c.outbound_lists_updated > 0) parts.push(`${c.outbound_lists_updated} outbound list(s) updated`);
20023
20136
  if (c.outbound_lists_deleted > 0) parts.push(`${c.outbound_lists_deleted} outbound list(s) deleted`);
20024
- if (c.outbound_schedules_created > 0) parts.push(`${c.outbound_schedules_created} outbound schedule(s) created`);
20025
- if (c.outbound_schedules_updated > 0) parts.push(`${c.outbound_schedules_updated} outbound schedule(s) updated`);
20026
- if (c.outbound_schedules_deleted > 0) parts.push(`${c.outbound_schedules_deleted} outbound schedule(s) deleted`);
20137
+ if (c.automations_created > 0) parts.push(`${c.automations_created} automation(s) created`);
20138
+ if (c.automations_updated > 0) parts.push(`${c.automations_updated} automation(s) updated`);
20139
+ if (c.automations_deleted > 0) parts.push(`${c.automations_deleted} automation(s) deleted`);
20027
20140
  if (parts.length > 0) {
20028
20141
  console.log(`Changes: ${parts.join(", ")}`);
20029
20142
  }