@maximoai/maximo-syntax-cli 0.1.32 → 0.1.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/cli.mjs +1292 -764
  2. package/package.json +1 -1
package/dist/cli.mjs CHANGED
@@ -79659,7 +79659,7 @@ var require_eventsource = __commonJS((exports, module) => {
79659
79659
 
79660
79660
  // node_modules/undici/index.js
79661
79661
  var require_undici = __commonJS((exports, module) => {
79662
- var __filename = "/private/tmp/maximo-syntax-cli-copy/node_modules/undici/index.js";
79662
+ var __filename = "/Users/johnsondaniel/Documents/maximo-syntax-cli/node_modules/undici/index.js";
79663
79663
  var Client = require_client();
79664
79664
  var Dispatcher = require_dispatcher();
79665
79665
  var Pool = require_pool();
@@ -96490,7 +96490,7 @@ var require_package = __commonJS((exports, module) => {
96490
96490
 
96491
96491
  // node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js
96492
96492
  var require_dist_cjs78 = __commonJS((exports) => {
96493
- var __dirname = "/private/tmp/maximo-syntax-cli-copy/node_modules/@aws-sdk/util-user-agent-node/dist-cjs";
96493
+ var __dirname = "/Users/johnsondaniel/Documents/maximo-syntax-cli/node_modules/@aws-sdk/util-user-agent-node/dist-cjs";
96494
96494
  var node_os = __require("node:os");
96495
96495
  var node_process = __require("node:process");
96496
96496
  var utilConfigProvider = require_dist_cjs63();
@@ -108410,6 +108410,17 @@ var init_betas = __esm(() => {
108410
108410
  ]);
108411
108411
  });
108412
108412
 
108413
+ // src/utils/model/modelDefaults.ts
108414
+ function normalizeRetiredMytabulonModel(value) {
108415
+ if (value === RETIRED_MYTABULON_MODEL)
108416
+ return MYTABULON_DEFAULT_MODEL;
108417
+ return value;
108418
+ }
108419
+ function chooseMytabulonDefaultModel(modelIds) {
108420
+ return modelIds.find((id) => id === MYTABULON_DEFAULT_MODEL) ?? modelIds.find((id) => id !== RETIRED_MYTABULON_MODEL) ?? MYTABULON_DEFAULT_MODEL;
108421
+ }
108422
+ var MYTABULON_DEFAULT_MODEL = "maximo-atlas-1.2", RETIRED_MYTABULON_MODEL = "maximo-atlas-preview";
108423
+
108413
108424
  // src/services/api/maximoModels.ts
108414
108425
  function normalizedBaseUrl(baseUrl) {
108415
108426
  return (baseUrl || "").replace(/\/+$/, "").toLowerCase();
@@ -108822,7 +108833,7 @@ async function refreshMyTabulonAccount({
108822
108833
  };
108823
108834
  }
108824
108835
  function persistMyTabulonState(apiKey, baseUrl, models, account) {
108825
- const defaultModel = models.find((model) => model.id === "maximo-atlas-preview")?.id || models[0]?.id || "maximo-atlas-preview";
108836
+ const defaultModel = chooseMytabulonDefaultModel(models.map((model) => model.id));
108826
108837
  process.env.MAXIMO_SYNTAX_USE_OPENAI = "1";
108827
108838
  process.env.OPENAI_API_KEY = apiKey;
108828
108839
  process.env.OPENAI_BASE_URL = baseUrl;
@@ -109674,13 +109685,13 @@ function isMaximoAIProvider() {
109674
109685
  return false;
109675
109686
  }
109676
109687
  function getOpenAIProviderDefaultModel(fallback) {
109677
- if (process.env.OPENAI_MODEL) {
109678
- return process.env.OPENAI_MODEL;
109679
- }
109680
109688
  const globalConfig2 = getGlobalConfig();
109681
109689
  const baseUrl = process.env.OPENAI_BASE_URL || globalConfig2.openAIBaseUrl || "";
109690
+ if (process.env.OPENAI_MODEL) {
109691
+ return normalizeRetiredMytabulonModel(process.env.OPENAI_MODEL) || process.env.OPENAI_MODEL;
109692
+ }
109682
109693
  if (baseUrl.includes("api.mytabulon.com")) {
109683
- return globalConfig2.mytabulonDefaultModel || "maximo-atlas-preview";
109694
+ return normalizeRetiredMytabulonModel(globalConfig2.mytabulonDefaultModel) || MYTABULON_DEFAULT_MODEL;
109684
109695
  }
109685
109696
  if (baseUrl.includes("maximoai.co")) {
109686
109697
  return "maximo-pandora-3.8-nano";
@@ -109716,6 +109727,9 @@ function getUserSpecifiedModelSetting() {
109716
109727
  const settings = getSettings_DEPRECATED() || {};
109717
109728
  specifiedModel = process.env.ANTHROPIC_MODEL || process.env.GEMINI_MODEL || settings.model || process.env.OPENAI_MODEL || undefined;
109718
109729
  }
109730
+ if (typeof specifiedModel === "string") {
109731
+ specifiedModel = normalizeRetiredMytabulonModel(specifiedModel);
109732
+ }
109719
109733
  if (specifiedModel && !isModelAllowed(specifiedModel)) {
109720
109734
  return;
109721
109735
  }
@@ -109812,6 +109826,9 @@ function firstPartyNameToCanonical(name) {
109812
109826
  if (name.includes("maximo-pandora-3.7-nano")) {
109813
109827
  return "maximo-pandora-3.7-nano";
109814
109828
  }
109829
+ if (name.includes("maximo-atlas-1.2")) {
109830
+ return "maximo-atlas-1.2";
109831
+ }
109815
109832
  if (name.includes("maximo-atlas-preview")) {
109816
109833
  return "maximo-atlas-preview";
109817
109834
  }
@@ -109899,7 +109916,7 @@ function getMaximoAiUserDefaultModelDescription(fastMode = false) {
109899
109916
  if (fastMode) {
109900
109917
  return "Pandora 3.8 Nano · Fast & efficient";
109901
109918
  }
109902
- return getOpenAIProviderDefaultModel("maximo-pandora-3.8-nano") === "maximo-atlas-preview" ? "Atlas Preview · Included with MyTabulon Coding Plan" : "Pandora 3.8 Nano · Optimized for coding";
109919
+ return getOpenAIProviderDefaultModel("maximo-pandora-3.8-nano") === MYTABULON_DEFAULT_MODEL ? "Atlas 1.2 · Included with MyTabulon Coding Plan" : "Pandora 3.8 Nano · Optimized for coding";
109903
109920
  }
109904
109921
  if (isMaxSubscriber() || isTeamPremiumSubscriber()) {
109905
109922
  if (isOpus1mMergeEnabled()) {
@@ -123983,7 +124000,7 @@ var init_metadata = __esm(() => {
123983
124000
  isMaximoAiAuth: isMaximoAISubscriber(),
123984
124001
  version: "99.0.0",
123985
124002
  versionBase: getVersionBase(),
123986
- buildTime: "2026-08-07T23:54:01.463Z",
124003
+ buildTime: "2026-08-15T17:26:52.338Z",
123987
124004
  deploymentEnvironment: env3.detectDeploymentEnvironment(),
123988
124005
  ...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
123989
124006
  githubEventName: process.env.GITHUB_EVENT_NAME,
@@ -165964,6 +165981,9 @@ function getSupportedEffortLevelsForModel(model) {
165964
165981
  return providerConfig.supportedEfforts.filter(isEffortLevel);
165965
165982
  }
165966
165983
  const m = model.toLowerCase();
165984
+ if (m.includes("maximo-atlas-1.2")) {
165985
+ return ["low", "medium", "high", "xhigh", "max"];
165986
+ }
165967
165987
  if (m.includes("opus-4-6")) {
165968
165988
  return ["low", "medium", "high", "max"];
165969
165989
  }
@@ -263677,10 +263697,496 @@ var init_registerFrontmatterHooks = __esm(() => {
263677
263697
  init_sessionHooks();
263678
263698
  });
263679
263699
 
263700
+ // src/utils/model/check1mAccess.ts
263701
+ function isExtraUsageEnabled() {
263702
+ const reason = getGlobalConfig().cachedExtraUsageDisabledReason;
263703
+ if (reason === undefined) {
263704
+ return false;
263705
+ }
263706
+ if (reason === null) {
263707
+ return true;
263708
+ }
263709
+ switch (reason) {
263710
+ case "out_of_credits":
263711
+ return true;
263712
+ case "overage_not_provisioned":
263713
+ case "org_level_disabled":
263714
+ case "org_level_disabled_until":
263715
+ case "seat_tier_level_disabled":
263716
+ case "member_level_disabled":
263717
+ case "seat_tier_zero_credit_limit":
263718
+ case "group_zero_credit_limit":
263719
+ case "member_zero_credit_limit":
263720
+ case "org_service_level_disabled":
263721
+ case "org_service_zero_credit_limit":
263722
+ case "no_limits_configured":
263723
+ case "unknown":
263724
+ return false;
263725
+ default:
263726
+ return false;
263727
+ }
263728
+ }
263729
+ function checkOpus1mAccess() {
263730
+ if (is1mContextDisabled()) {
263731
+ return false;
263732
+ }
263733
+ if (isMaximoAISubscriber()) {
263734
+ return isExtraUsageEnabled();
263735
+ }
263736
+ return true;
263737
+ }
263738
+ function checkSonnet1mAccess() {
263739
+ if (is1mContextDisabled()) {
263740
+ return false;
263741
+ }
263742
+ if (isMaximoAISubscriber()) {
263743
+ return isExtraUsageEnabled();
263744
+ }
263745
+ return true;
263746
+ }
263747
+ var init_check1mAccess = __esm(() => {
263748
+ init_auth2();
263749
+ init_config2();
263750
+ init_context();
263751
+ });
263752
+
263753
+ // src/utils/model/modelOptions.ts
263754
+ function getDefaultOptionForUser(fastMode = false) {
263755
+ if (process.env.USER_TYPE === "ant") {
263756
+ const currentModel = renderDefaultModelSetting(getDefaultMainLoopModelSetting());
263757
+ return {
263758
+ value: null,
263759
+ label: "Default (recommended)",
263760
+ description: `Use the default model for Ants (currently ${currentModel})`,
263761
+ descriptionForModel: `Default model (currently ${currentModel})`
263762
+ };
263763
+ }
263764
+ if (isMaximoAISubscriber()) {
263765
+ return {
263766
+ value: null,
263767
+ label: "Default (recommended)",
263768
+ description: getMaximoAiUserDefaultModelDescription(fastMode)
263769
+ };
263770
+ }
263771
+ const is3P = getAPIProvider() !== "firstParty";
263772
+ return {
263773
+ value: null,
263774
+ label: "Default (recommended)",
263775
+ description: `Use the default model (currently ${renderDefaultModelSetting(getDefaultMainLoopModelSetting())})${is3P ? "" : ` · ${formatModelPricing(COST_TIER_3_15)}`}`
263776
+ };
263777
+ }
263778
+ function getCustomSonnetOption() {
263779
+ const is3P = getAPIProvider() !== "firstParty";
263780
+ const customSonnetModel = process.env.ANTHROPIC_DEFAULT_SONNET_MODEL;
263781
+ if (is3P && customSonnetModel) {
263782
+ const is1m = has1mContext(customSonnetModel);
263783
+ return {
263784
+ value: "sonnet",
263785
+ label: process.env.ANTHROPIC_DEFAULT_SONNET_MODEL_NAME ?? customSonnetModel,
263786
+ description: process.env.ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION ?? `Custom Sonnet model${is1m ? " (1M context)" : ""}`,
263787
+ descriptionForModel: `${process.env.ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION ?? `Custom Sonnet model${is1m ? " with 1M context" : ""}`} (${customSonnetModel})`
263788
+ };
263789
+ }
263790
+ }
263791
+ function getSonnet46Option() {
263792
+ const is3P = getAPIProvider() !== "firstParty";
263793
+ return {
263794
+ value: is3P ? getModelStrings2().sonnet46 : "sonnet",
263795
+ label: "Sonnet",
263796
+ description: `Sonnet 4.6 · Best for everyday tasks${is3P ? "" : ` · ${formatModelPricing(COST_TIER_3_15)}`}`,
263797
+ descriptionForModel: "Sonnet 4.6 - best for everyday tasks. Generally recommended for most coding tasks"
263798
+ };
263799
+ }
263800
+ function getCustomOpusOption() {
263801
+ const is3P = getAPIProvider() !== "firstParty";
263802
+ const customOpusModel = process.env.ANTHROPIC_DEFAULT_OPUS_MODEL;
263803
+ if (is3P && customOpusModel) {
263804
+ const is1m = has1mContext(customOpusModel);
263805
+ return {
263806
+ value: "opus",
263807
+ label: process.env.ANTHROPIC_DEFAULT_OPUS_MODEL_NAME ?? customOpusModel,
263808
+ description: process.env.ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION ?? `Custom Opus model${is1m ? " (1M context)" : ""}`,
263809
+ descriptionForModel: `${process.env.ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION ?? `Custom Opus model${is1m ? " with 1M context" : ""}`} (${customOpusModel})`
263810
+ };
263811
+ }
263812
+ }
263813
+ function getOpus41Option() {
263814
+ return {
263815
+ value: "opus",
263816
+ label: "Opus 4.1",
263817
+ description: `Opus 4.1 · Legacy`,
263818
+ descriptionForModel: "Opus 4.1 - legacy version"
263819
+ };
263820
+ }
263821
+ function getOpus46Option(fastMode = false) {
263822
+ const is3P = getAPIProvider() !== "firstParty";
263823
+ return {
263824
+ value: is3P ? getModelStrings2().opus46 : "opus",
263825
+ label: "Opus",
263826
+ description: `Opus 4.6 · Most capable for complex work${getOpus46PricingSuffix(fastMode)}`,
263827
+ descriptionForModel: "Opus 4.6 - most capable for complex work"
263828
+ };
263829
+ }
263830
+ function getSonnet46_1MOption() {
263831
+ const is3P = getAPIProvider() !== "firstParty";
263832
+ return {
263833
+ value: is3P ? getModelStrings2().sonnet46 + "[1m]" : "sonnet[1m]",
263834
+ label: "Sonnet (1M context)",
263835
+ description: `Sonnet 4.6 for long sessions${is3P ? "" : ` · ${formatModelPricing(COST_TIER_3_15)}`}`,
263836
+ descriptionForModel: "Sonnet 4.6 with 1M context window - for long sessions with large codebases"
263837
+ };
263838
+ }
263839
+ function getOpus46_1MOption(fastMode = false) {
263840
+ const is3P = getAPIProvider() !== "firstParty";
263841
+ return {
263842
+ value: is3P ? getModelStrings2().opus46 + "[1m]" : "opus[1m]",
263843
+ label: "Opus (1M context)",
263844
+ description: `Opus 4.6 for long sessions${getOpus46PricingSuffix(fastMode)}`,
263845
+ descriptionForModel: "Opus 4.6 with 1M context window - for long sessions with large codebases"
263846
+ };
263847
+ }
263848
+ function getCustomHaikuOption() {
263849
+ const is3P = getAPIProvider() !== "firstParty";
263850
+ const customHaikuModel = process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL;
263851
+ if (is3P && customHaikuModel) {
263852
+ return {
263853
+ value: "haiku",
263854
+ label: process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME ?? customHaikuModel,
263855
+ description: process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION ?? "Custom Haiku model",
263856
+ descriptionForModel: `${process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION ?? "Custom Haiku model"} (${customHaikuModel})`
263857
+ };
263858
+ }
263859
+ }
263860
+ function getHaiku45Option() {
263861
+ const is3P = getAPIProvider() !== "firstParty";
263862
+ return {
263863
+ value: "haiku",
263864
+ label: "Haiku",
263865
+ description: `Haiku 4.5 · Fastest for quick answers${is3P ? "" : ` · ${formatModelPricing(COST_HAIKU_45)}`}`,
263866
+ descriptionForModel: "Haiku 4.5 - fastest for quick answers. Lower cost but less capable than Sonnet 4.6."
263867
+ };
263868
+ }
263869
+ function getHaiku35Option() {
263870
+ const is3P = getAPIProvider() !== "firstParty";
263871
+ return {
263872
+ value: "haiku",
263873
+ label: "Haiku",
263874
+ description: `Haiku 3.5 for simple tasks${is3P ? "" : ` · ${formatModelPricing(COST_HAIKU_35)}`}`,
263875
+ descriptionForModel: "Haiku 3.5 - faster and lower cost, but less capable than Sonnet. Use for simple tasks."
263876
+ };
263877
+ }
263878
+ function getHaikuOption() {
263879
+ const haikuModel = getDefaultHaikuModel();
263880
+ return haikuModel === getModelStrings2().haiku45 ? getHaiku45Option() : getHaiku35Option();
263881
+ }
263882
+ function getMaxOpusOption(fastMode = false) {
263883
+ return {
263884
+ value: "opus",
263885
+ label: "Opus",
263886
+ description: `Opus 4.6 · Most capable for complex work${fastMode ? getOpus46PricingSuffix(true) : ""}`
263887
+ };
263888
+ }
263889
+ function getMaxSonnet46_1MOption() {
263890
+ const is3P = getAPIProvider() !== "firstParty";
263891
+ const billingInfo = isMaximoAISubscriber() ? " · Billed as extra usage" : "";
263892
+ return {
263893
+ value: "sonnet[1m]",
263894
+ label: "Sonnet (1M context)",
263895
+ description: `Sonnet 4.6 with 1M context${billingInfo}${is3P ? "" : ` · ${formatModelPricing(COST_TIER_3_15)}`}`
263896
+ };
263897
+ }
263898
+ function getMaxOpus46_1MOption(fastMode = false) {
263899
+ const billingInfo = isMaximoAISubscriber() ? " · Billed as extra usage" : "";
263900
+ return {
263901
+ value: "opus[1m]",
263902
+ label: "Opus (1M context)",
263903
+ description: `Opus 4.6 with 1M context${billingInfo}${getOpus46PricingSuffix(fastMode)}`
263904
+ };
263905
+ }
263906
+ function getMergedOpus1MOption(fastMode = false) {
263907
+ const is3P = getAPIProvider() !== "firstParty";
263908
+ return {
263909
+ value: is3P ? getModelStrings2().opus46 + "[1m]" : "opus[1m]",
263910
+ label: "Opus (1M context)",
263911
+ description: `Opus 4.6 with 1M context · Most capable for complex work${!is3P && fastMode ? getOpus46PricingSuffix(fastMode) : ""}`,
263912
+ descriptionForModel: "Opus 4.6 with 1M context - most capable for complex work"
263913
+ };
263914
+ }
263915
+ function getOpusPlanOption() {
263916
+ return {
263917
+ value: "opusplan",
263918
+ label: "Opus Plan Mode",
263919
+ description: "Use Opus 4.6 in plan mode, Sonnet 4.6 otherwise"
263920
+ };
263921
+ }
263922
+ function getCodexPlanOption() {
263923
+ return {
263924
+ value: "codexplan",
263925
+ label: "Codex Plan",
263926
+ description: "GPT-5.4 on the Codex backend with high reasoning"
263927
+ };
263928
+ }
263929
+ function getCodexSparkOption() {
263930
+ return {
263931
+ value: "codexspark",
263932
+ label: "Codex Spark",
263933
+ description: "GPT-5.3 Codex Spark on the Codex backend for fast tool loops"
263934
+ };
263935
+ }
263936
+ function getModelOptionsBase(fastMode = false) {
263937
+ if (process.env.USER_TYPE === "ant") {
263938
+ const antModelOptions = getAntModels().map((m) => ({
263939
+ value: m.alias,
263940
+ label: m.label,
263941
+ description: m.description ?? `[ANT-ONLY] ${m.label} (${m.model})`
263942
+ }));
263943
+ return [
263944
+ getDefaultOptionForUser(),
263945
+ ...antModelOptions,
263946
+ getMergedOpus1MOption(fastMode),
263947
+ getSonnet46Option(),
263948
+ getSonnet46_1MOption(),
263949
+ getHaiku45Option()
263950
+ ];
263951
+ }
263952
+ if (isMaximoAISubscriber()) {
263953
+ if (isMaxSubscriber() || isTeamPremiumSubscriber()) {
263954
+ const premiumOptions = [getDefaultOptionForUser(fastMode)];
263955
+ if (!isOpus1mMergeEnabled() && checkOpus1mAccess()) {
263956
+ premiumOptions.push(getMaxOpus46_1MOption(fastMode));
263957
+ }
263958
+ premiumOptions.push(MaxSonnet46Option);
263959
+ if (checkSonnet1mAccess()) {
263960
+ premiumOptions.push(getMaxSonnet46_1MOption());
263961
+ }
263962
+ premiumOptions.push(MaxHaiku45Option);
263963
+ return premiumOptions;
263964
+ }
263965
+ const standardOptions = [getDefaultOptionForUser(fastMode)];
263966
+ if (checkSonnet1mAccess()) {
263967
+ standardOptions.push(getMaxSonnet46_1MOption());
263968
+ }
263969
+ if (isOpus1mMergeEnabled()) {
263970
+ standardOptions.push(getMergedOpus1MOption(fastMode));
263971
+ } else {
263972
+ standardOptions.push(getMaxOpusOption(fastMode));
263973
+ if (checkOpus1mAccess()) {
263974
+ standardOptions.push(getMaxOpus46_1MOption(fastMode));
263975
+ }
263976
+ }
263977
+ standardOptions.push(MaxHaiku45Option);
263978
+ return standardOptions;
263979
+ }
263980
+ if (getAPIProvider() === "firstParty") {
263981
+ const payg1POptions = [getDefaultOptionForUser(fastMode)];
263982
+ if (checkSonnet1mAccess()) {
263983
+ payg1POptions.push(getSonnet46_1MOption());
263984
+ }
263985
+ if (isOpus1mMergeEnabled()) {
263986
+ payg1POptions.push(getMergedOpus1MOption(fastMode));
263987
+ } else {
263988
+ payg1POptions.push(getOpus46Option(fastMode));
263989
+ if (checkOpus1mAccess()) {
263990
+ payg1POptions.push(getOpus46_1MOption(fastMode));
263991
+ }
263992
+ }
263993
+ payg1POptions.push(getHaiku45Option());
263994
+ return payg1POptions;
263995
+ }
263996
+ const payg3pOptions = [getDefaultOptionForUser(fastMode)];
263997
+ if (getAPIProvider() === "openai") {
263998
+ payg3pOptions.push(getCodexPlanOption(), getCodexSparkOption());
263999
+ }
264000
+ const customSonnet = getCustomSonnetOption();
264001
+ if (customSonnet !== undefined) {
264002
+ payg3pOptions.push(customSonnet);
264003
+ } else {
264004
+ payg3pOptions.push(getSonnet46Option());
264005
+ if (checkSonnet1mAccess()) {
264006
+ payg3pOptions.push(getSonnet46_1MOption());
264007
+ }
264008
+ }
264009
+ const customOpus = getCustomOpusOption();
264010
+ if (customOpus !== undefined) {
264011
+ payg3pOptions.push(customOpus);
264012
+ } else {
264013
+ payg3pOptions.push(getOpus41Option());
264014
+ payg3pOptions.push(getOpus46Option(fastMode));
264015
+ if (checkOpus1mAccess()) {
264016
+ payg3pOptions.push(getOpus46_1MOption(fastMode));
264017
+ }
264018
+ }
264019
+ const customHaiku = getCustomHaikuOption();
264020
+ if (customHaiku !== undefined) {
264021
+ payg3pOptions.push(customHaiku);
264022
+ } else {
264023
+ payg3pOptions.push(getHaikuOption());
264024
+ }
264025
+ return payg3pOptions;
264026
+ }
264027
+ function getModelFamilyInfo(model) {
264028
+ const canonical = getCanonicalName(model);
264029
+ if (canonical.includes("claude-sonnet-4-6") || canonical.includes("claude-sonnet-4-5") || canonical.includes("claude-sonnet-4-") || canonical.includes("claude-3-7-sonnet") || canonical.includes("claude-3-5-sonnet")) {
264030
+ const currentName = getMarketingNameForModel(getDefaultSonnetModel());
264031
+ if (currentName) {
264032
+ return { alias: "Sonnet", currentVersionName: currentName };
264033
+ }
264034
+ }
264035
+ if (canonical.includes("claude-opus-4")) {
264036
+ const currentName = getMarketingNameForModel(getDefaultOpusModel());
264037
+ if (currentName) {
264038
+ return { alias: "Opus", currentVersionName: currentName };
264039
+ }
264040
+ }
264041
+ if (canonical.includes("claude-haiku") || canonical.includes("claude-3-5-haiku")) {
264042
+ const currentName = getMarketingNameForModel(getDefaultHaikuModel());
264043
+ if (currentName) {
264044
+ return { alias: "Haiku", currentVersionName: currentName };
264045
+ }
264046
+ }
264047
+ return null;
264048
+ }
264049
+ function getKnownModelOption(model) {
264050
+ const marketingName = getMarketingNameForModel(model);
264051
+ if (!marketingName)
264052
+ return null;
264053
+ const familyInfo = getModelFamilyInfo(model);
264054
+ if (!familyInfo) {
264055
+ return {
264056
+ value: model,
264057
+ label: marketingName,
264058
+ description: model
264059
+ };
264060
+ }
264061
+ if (marketingName !== familyInfo.currentVersionName) {
264062
+ return {
264063
+ value: model,
264064
+ label: marketingName,
264065
+ description: `Newer version available · select ${familyInfo.alias} for ${familyInfo.currentVersionName}`
264066
+ };
264067
+ }
264068
+ return {
264069
+ value: model,
264070
+ label: marketingName,
264071
+ description: model
264072
+ };
264073
+ }
264074
+ async function getModelOptionsAsync(fastMode = false) {
264075
+ const maximoOptions = await getMaximoModelOptions();
264076
+ if (maximoOptions) {
264077
+ return filterModelOptionsByAllowlist([
264078
+ getDefaultOptionForUser(fastMode),
264079
+ ...maximoOptions
264080
+ ]);
264081
+ }
264082
+ return getModelOptionsBase(fastMode);
264083
+ }
264084
+ function getModelOptions(fastMode = false) {
264085
+ const maximoOptions = getCachedMaximoModelOptions();
264086
+ if (maximoOptions) {
264087
+ return filterModelOptionsByAllowlist([
264088
+ getDefaultOptionForUser(fastMode),
264089
+ ...maximoOptions
264090
+ ]);
264091
+ }
264092
+ const options2 = getModelOptionsBase(fastMode);
264093
+ const envCustomModel = process.env.ANTHROPIC_CUSTOM_MODEL_OPTION;
264094
+ if (envCustomModel && !options2.some((existing) => existing.value === envCustomModel)) {
264095
+ options2.push({
264096
+ value: envCustomModel,
264097
+ label: process.env.ANTHROPIC_CUSTOM_MODEL_OPTION_NAME ?? envCustomModel,
264098
+ description: process.env.ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION ?? `Custom model (${envCustomModel})`
264099
+ });
264100
+ }
264101
+ for (const opt of getGlobalConfig().additionalModelOptionsCache ?? []) {
264102
+ if (!options2.some((existing) => existing.value === opt.value)) {
264103
+ options2.push(opt);
264104
+ }
264105
+ }
264106
+ let customModel = null;
264107
+ const currentMainLoopModel = getUserSpecifiedModelSetting();
264108
+ const initialMainLoopModel = getInitialMainLoopModel();
264109
+ if (currentMainLoopModel !== undefined && currentMainLoopModel !== null) {
264110
+ customModel = currentMainLoopModel;
264111
+ } else if (initialMainLoopModel !== null) {
264112
+ customModel = initialMainLoopModel;
264113
+ }
264114
+ if (customModel === null || options2.some((opt) => opt.value === customModel)) {
264115
+ return filterModelOptionsByAllowlist(options2);
264116
+ } else if (customModel === "opusplan") {
264117
+ return filterModelOptionsByAllowlist([...options2, getOpusPlanOption()]);
264118
+ } else if (customModel === "codexplan") {
264119
+ return filterModelOptionsByAllowlist([...options2, getCodexPlanOption()]);
264120
+ } else if (customModel === "codexspark") {
264121
+ return filterModelOptionsByAllowlist([...options2, getCodexSparkOption()]);
264122
+ } else if (customModel === "opus" && getAPIProvider() === "firstParty") {
264123
+ return filterModelOptionsByAllowlist([
264124
+ ...options2,
264125
+ getMaxOpusOption(fastMode)
264126
+ ]);
264127
+ } else if (customModel === "opus[1m]" && getAPIProvider() === "firstParty") {
264128
+ return filterModelOptionsByAllowlist([
264129
+ ...options2,
264130
+ getMergedOpus1MOption(fastMode)
264131
+ ]);
264132
+ } else {
264133
+ const knownOption = getKnownModelOption(customModel);
264134
+ if (knownOption) {
264135
+ options2.push(knownOption);
264136
+ } else {
264137
+ options2.push({
264138
+ value: customModel,
264139
+ label: customModel,
264140
+ description: "Custom model"
264141
+ });
264142
+ }
264143
+ return filterModelOptionsByAllowlist(options2);
264144
+ }
264145
+ }
264146
+ function filterModelOptionsByAllowlist(options2) {
264147
+ const settings = getSettings_DEPRECATED() || {};
264148
+ if (!settings.availableModels) {
264149
+ return options2;
264150
+ }
264151
+ return options2.filter((opt) => opt.value === null || opt.value !== null && isModelAllowed(opt.value));
264152
+ }
264153
+ var MaxSonnet46Option, MaxHaiku45Option;
264154
+ var init_modelOptions = __esm(() => {
264155
+ init_state();
264156
+ init_antModels();
264157
+ init_auth2();
264158
+ init_modelStrings();
264159
+ init_modelCost();
264160
+ init_settings2();
264161
+ init_check1mAccess();
264162
+ init_providers();
264163
+ init_modelAllowlist();
264164
+ init_model();
264165
+ init_context();
264166
+ init_config2();
264167
+ init_maximoModels();
264168
+ MaxSonnet46Option = {
264169
+ value: "sonnet",
264170
+ label: "Sonnet",
264171
+ description: "Sonnet 4.6 · Best for everyday tasks"
264172
+ };
264173
+ MaxHaiku45Option = {
264174
+ value: "haiku",
264175
+ label: "Haiku",
264176
+ description: "Haiku 4.5 · Fastest for quick answers"
264177
+ };
264178
+ });
264179
+
263680
264180
  // src/utils/model/agent.ts
263681
264181
  function getDefaultSubagentModel() {
263682
264182
  return "inherit";
263683
264183
  }
264184
+ function isInheritAgentModel(value) {
264185
+ if (!value)
264186
+ return true;
264187
+ const normalized = value.trim().toLowerCase();
264188
+ return normalized === "inherit" || normalized === "parent" || normalized === "same";
264189
+ }
263684
264190
  function getAgentModel(agentModel, parentModel, toolSpecifiedModel, permissionMode) {
263685
264191
  if (process.env.MAXIMO_SYNTAX_SUBAGENT_MODEL) {
263686
264192
  return parseUserSpecifiedModel(process.env.MAXIMO_SYNTAX_SUBAGENT_MODEL);
@@ -263694,7 +264200,7 @@ function getAgentModel(agentModel, parentModel, toolSpecifiedModel, permissionMo
263694
264200
  }
263695
264201
  return resolvedModel;
263696
264202
  };
263697
- if (toolSpecifiedModel) {
264203
+ if (toolSpecifiedModel && !isInheritAgentModel(toolSpecifiedModel)) {
263698
264204
  if (aliasMatchesParentTier(toolSpecifiedModel, parentModel)) {
263699
264205
  return parentModel;
263700
264206
  }
@@ -263736,7 +264242,29 @@ function getAgentModelDisplay(model) {
263736
264242
  return capitalize(model);
263737
264243
  }
263738
264244
  function getAgentModelOptions() {
263739
- return [
264245
+ const options2 = [
264246
+ {
264247
+ value: "inherit",
264248
+ label: "Inherit from parent",
264249
+ description: "Use the same model as the main conversation"
264250
+ }
264251
+ ];
264252
+ const seen = new Set(["inherit"]);
264253
+ try {
264254
+ for (const option of getModelOptions()) {
264255
+ if (typeof option.value !== "string" || !option.value.trim())
264256
+ continue;
264257
+ if (seen.has(option.value))
264258
+ continue;
264259
+ seen.add(option.value);
264260
+ options2.push({
264261
+ value: option.value,
264262
+ label: option.label,
264263
+ description: option.description
264264
+ });
264265
+ }
264266
+ } catch {}
264267
+ const aliasFallbacks = [
263740
264268
  {
263741
264269
  value: "sonnet",
263742
264270
  label: "Sonnet",
@@ -263751,13 +264279,13 @@ function getAgentModelOptions() {
263751
264279
  value: "haiku",
263752
264280
  label: "Haiku",
263753
264281
  description: "Fast and efficient for simple tasks"
263754
- },
263755
- {
263756
- value: "inherit",
263757
- label: "Inherit from parent",
263758
- description: "Use the same model as the main conversation"
263759
264282
  }
263760
264283
  ];
264284
+ for (const alias of aliasFallbacks) {
264285
+ if (!seen.has(alias.value))
264286
+ options2.push(alias);
264287
+ }
264288
+ return options2;
263761
264289
  }
263762
264290
  var AGENT_MODEL_OPTIONS;
263763
264291
  var init_agent = __esm(() => {
@@ -263765,6 +264293,7 @@ var init_agent = __esm(() => {
263765
264293
  init_aliases();
263766
264294
  init_bedrock();
263767
264295
  init_model();
264296
+ init_modelOptions();
263768
264297
  init_providers();
263769
264298
  AGENT_MODEL_OPTIONS = [...MODEL_ALIASES, "inherit"];
263770
264299
  });
@@ -267230,59 +267759,6 @@ var init_AssistantRedactedThinkingMessage = __esm(() => {
267230
267759
  jsx_runtime48 = __toESM(require_jsx_runtime(), 1);
267231
267760
  });
267232
267761
 
267233
- // src/utils/model/check1mAccess.ts
267234
- function isExtraUsageEnabled() {
267235
- const reason = getGlobalConfig().cachedExtraUsageDisabledReason;
267236
- if (reason === undefined) {
267237
- return false;
267238
- }
267239
- if (reason === null) {
267240
- return true;
267241
- }
267242
- switch (reason) {
267243
- case "out_of_credits":
267244
- return true;
267245
- case "overage_not_provisioned":
267246
- case "org_level_disabled":
267247
- case "org_level_disabled_until":
267248
- case "seat_tier_level_disabled":
267249
- case "member_level_disabled":
267250
- case "seat_tier_zero_credit_limit":
267251
- case "group_zero_credit_limit":
267252
- case "member_zero_credit_limit":
267253
- case "org_service_level_disabled":
267254
- case "org_service_zero_credit_limit":
267255
- case "no_limits_configured":
267256
- case "unknown":
267257
- return false;
267258
- default:
267259
- return false;
267260
- }
267261
- }
267262
- function checkOpus1mAccess() {
267263
- if (is1mContextDisabled()) {
267264
- return false;
267265
- }
267266
- if (isMaximoAISubscriber()) {
267267
- return isExtraUsageEnabled();
267268
- }
267269
- return true;
267270
- }
267271
- function checkSonnet1mAccess() {
267272
- if (is1mContextDisabled()) {
267273
- return false;
267274
- }
267275
- if (isMaximoAISubscriber()) {
267276
- return isExtraUsageEnabled();
267277
- }
267278
- return true;
267279
- }
267280
- var init_check1mAccess = __esm(() => {
267281
- init_auth2();
267282
- init_config2();
267283
- init_context();
267284
- });
267285
-
267286
267762
  // src/utils/model/contextWindowUpgradeCheck.ts
267287
267763
  function getAvailableUpgrade() {
267288
267764
  const currentModelSetting = getUserSpecifiedModelSetting();
@@ -276770,7 +277246,7 @@ import { access as access3, writeFile as writeFile13 } from "fs/promises";
276770
277246
  import { homedir as homedir22 } from "os";
276771
277247
  import { join as join65 } from "path";
276772
277248
  function getCurrentRealVersion() {
276773
- return "0.1.32";
277249
+ return "0.1.34";
276774
277250
  }
276775
277251
  async function getRolloutConfig() {
276776
277252
  try {
@@ -300376,6 +300852,7 @@ async function* runAgent({
300376
300852
  useExactTools,
300377
300853
  worktreePath,
300378
300854
  description,
300855
+ effort,
300379
300856
  transcriptSubdir,
300380
300857
  onQueryProgress
300381
300858
  }) {
@@ -300438,7 +300915,7 @@ async function* runAgent({
300438
300915
  }
300439
300916
  };
300440
300917
  }
300441
- const effortValue = agentDefinition.effort !== undefined ? agentDefinition.effort : state.effortValue;
300918
+ const effortValue = effort !== undefined ? effort : agentDefinition.effort !== undefined ? agentDefinition.effort : state.effortValue;
300442
300919
  if (toolPermissionContext === state.toolPermissionContext && effortValue === state.effortValue) {
300443
300920
  return state;
300444
300921
  }
@@ -345963,6 +346440,247 @@ var init_BriefTool = __esm(() => {
345963
346440
  });
345964
346441
  });
345965
346442
 
346443
+ // src/tools/AutomationTool/host.ts
346444
+ import { createConnection as createConnection2 } from "node:net";
346445
+ import { randomUUID as randomUUID18 } from "node:crypto";
346446
+ function safeErrorMessage(error42) {
346447
+ if (typeof error42 === "string" && error42.trim())
346448
+ return error42.trim();
346449
+ if (error42 && typeof error42 === "object" && typeof error42.message === "string") {
346450
+ return error42.message.trim() || "The desktop automation host rejected the request.";
346451
+ }
346452
+ return "The desktop automation host rejected the request.";
346453
+ }
346454
+ function getAutomationHostEnvironment(environment = process.env) {
346455
+ const pipe2 = environment.MAXIMO_SYNTAX_AUTOMATION_HOST_PIPE?.trim();
346456
+ const capability = environment.MAXIMO_SYNTAX_AUTOMATION_HOST_CAPABILITY?.trim();
346457
+ if (!pipe2 || !capability)
346458
+ return null;
346459
+ return {
346460
+ pipe: pipe2,
346461
+ capability,
346462
+ threadId: environment.MAXIMO_SYNTAX_DESKTOP_THREAD_ID?.trim() || undefined,
346463
+ projectId: environment.MAXIMO_SYNTAX_DESKTOP_PROJECT_ID?.trim() || undefined,
346464
+ workspaceRoot: environment.MAXIMO_SYNTAX_DESKTOP_WORKSPACE_ROOT?.trim() || undefined
346465
+ };
346466
+ }
346467
+ async function callAutomationHost(action2, argumentsValue, host = getAutomationHostEnvironment()) {
346468
+ if (!host) {
346469
+ throw new Error("Automations are only available while Maximo Syntax is running inside the desktop app.");
346470
+ }
346471
+ const requestId = randomUUID18();
346472
+ const request = JSON.stringify({
346473
+ id: requestId,
346474
+ capability: host.capability,
346475
+ action: action2,
346476
+ arguments: argumentsValue,
346477
+ context: {
346478
+ threadId: host.threadId,
346479
+ projectId: host.projectId,
346480
+ workspaceRoot: host.workspaceRoot
346481
+ }
346482
+ });
346483
+ return new Promise((resolve31, reject2) => {
346484
+ const socket = createConnection2(host.pipe);
346485
+ let settled = false;
346486
+ let responseText = "";
346487
+ const finish = (error42, value) => {
346488
+ if (settled)
346489
+ return;
346490
+ settled = true;
346491
+ clearTimeout(timeout);
346492
+ socket.destroy();
346493
+ if (error42)
346494
+ reject2(error42);
346495
+ else
346496
+ resolve31(value);
346497
+ };
346498
+ const timeout = setTimeout(() => {
346499
+ finish(new Error("The desktop automation host did not respond in time."));
346500
+ }, REQUEST_TIMEOUT_MS);
346501
+ socket.setEncoding("utf8");
346502
+ socket.on("connect", () => socket.write(`${request}
346503
+ `));
346504
+ socket.on("data", (chunk) => {
346505
+ responseText += chunk;
346506
+ if (Buffer.byteLength(responseText, "utf8") > MAX_RESPONSE_BYTES) {
346507
+ finish(new Error("The desktop automation response was too large."));
346508
+ return;
346509
+ }
346510
+ const newline2 = responseText.indexOf(`
346511
+ `);
346512
+ if (newline2 < 0)
346513
+ return;
346514
+ try {
346515
+ const response = JSON.parse(responseText.slice(0, newline2));
346516
+ if (response.id !== requestId) {
346517
+ finish(new Error("The desktop automation host returned a mismatched response."));
346518
+ } else if (response.ok === false || response.error) {
346519
+ finish(new Error(safeErrorMessage(response.error)));
346520
+ } else {
346521
+ finish(undefined, response.result);
346522
+ }
346523
+ } catch (error42) {
346524
+ finish(new Error(error42 instanceof Error ? `Invalid response from the desktop automation host: ${error42.message}` : "Invalid response from the desktop automation host."));
346525
+ }
346526
+ });
346527
+ socket.on("error", (error42) => {
346528
+ finish(new Error(`Could not reach the desktop automation host: ${error42.message}`));
346529
+ });
346530
+ socket.on("close", () => {
346531
+ if (!settled)
346532
+ finish(new Error("The desktop automation host closed the connection."));
346533
+ });
346534
+ });
346535
+ }
346536
+ var MAX_RESPONSE_BYTES, REQUEST_TIMEOUT_MS = 15000;
346537
+ var init_host = __esm(() => {
346538
+ MAX_RESPONSE_BYTES = 4 * 1024 * 1024;
346539
+ });
346540
+
346541
+ // src/tools/AutomationTool/AutomationTool.ts
346542
+ var actionSchema, scheduleSchema, inputSchema20, outputSchema17, MUTATING_ACTIONS, AutomationTool;
346543
+ var init_AutomationTool = __esm(() => {
346544
+ init_v4();
346545
+ init_Tool();
346546
+ init_host();
346547
+ actionSchema = exports_external.enum([
346548
+ "create",
346549
+ "list",
346550
+ "get",
346551
+ "update",
346552
+ "pause",
346553
+ "resume",
346554
+ "delete",
346555
+ "run_now",
346556
+ "list_runs",
346557
+ "cancel_run",
346558
+ "mark_runs_read"
346559
+ ]);
346560
+ scheduleSchema = exports_external.strictObject({
346561
+ type: exports_external.enum(["manual", "once", "interval", "daily", "weekdays", "weekly", "cron"]),
346562
+ run_at: exports_external.string().optional().describe("ISO timestamp for a one-time automation."),
346563
+ every_minutes: exports_external.number().int().min(1).max(525600).optional(),
346564
+ time_of_day: exports_external.string().optional().describe('Local 24-hour time such as "09:00".'),
346565
+ day_of_week: exports_external.number().int().min(0).max(6).optional().describe("0 is Sunday and 6 is Saturday."),
346566
+ expression: exports_external.string().optional().describe("Standard five-field cron expression."),
346567
+ timezone: exports_external.string().optional().describe('IANA timezone such as "Africa/Lagos".')
346568
+ }).optional();
346569
+ inputSchema20 = lazySchema(() => exports_external.strictObject({
346570
+ action: actionSchema.describe("The automation operation to perform."),
346571
+ automation_id: exports_external.string().optional(),
346572
+ run_id: exports_external.string().optional(),
346573
+ limit: exports_external.number().int().min(1).max(200).optional().describe("Run-history page size for list_runs. Defaults to 50."),
346574
+ offset: exports_external.number().int().min(0).max(1000).optional().describe("Run-history offset for list_runs. Defaults to 0."),
346575
+ name: exports_external.string().max(160).optional(),
346576
+ description: exports_external.string().max(2000).optional(),
346577
+ prompt: exports_external.string().max(1e5).optional(),
346578
+ schedule: scheduleSchema,
346579
+ destination: exports_external.enum(["new_chat", "dedicated_chat", "existing_chat"]).optional(),
346580
+ thread_id: exports_external.string().optional().describe("Required when destination is existing_chat."),
346581
+ model: exports_external.string().optional(),
346582
+ effort: exports_external.enum(["low", "medium", "high", "xhigh", "max"]).optional(),
346583
+ permission_mode: exports_external.enum(["default", "acceptEdits", "auto", "full", "bypassPermissions", "plan"]).optional().describe("Desktop permission policy. full and bypassPermissions both grant unrestricted command access."),
346584
+ workspace_mode: exports_external.enum(["auto", "local", "worktree"]).optional(),
346585
+ allow_local_fallback: exports_external.boolean().optional(),
346586
+ notification_policy: exports_external.enum(["all", "failures_only", "none"]).optional(),
346587
+ max_runtime_minutes: exports_external.number().int().min(1).max(1440).optional(),
346588
+ enabled: exports_external.boolean().optional()
346589
+ }));
346590
+ outputSchema17 = lazySchema(() => exports_external.object({
346591
+ success: exports_external.boolean(),
346592
+ action: actionSchema,
346593
+ result: exports_external.unknown().optional()
346594
+ }));
346595
+ MUTATING_ACTIONS = new Set([
346596
+ "create",
346597
+ "update",
346598
+ "pause",
346599
+ "resume",
346600
+ "delete",
346601
+ "run_now",
346602
+ "cancel_run",
346603
+ "mark_runs_read"
346604
+ ]);
346605
+ AutomationTool = buildTool({
346606
+ name: "Automation",
346607
+ searchHint: "schedule manage background recurring work",
346608
+ shouldDefer: true,
346609
+ maxResultSizeChars: 1e5,
346610
+ get inputSchema() {
346611
+ return inputSchema20();
346612
+ },
346613
+ get outputSchema() {
346614
+ return outputSchema17();
346615
+ },
346616
+ isEnabled() {
346617
+ return getAutomationHostEnvironment() !== null;
346618
+ },
346619
+ isConcurrencySafe(input) {
346620
+ return !MUTATING_ACTIONS.has(input.action);
346621
+ },
346622
+ isReadOnly(input) {
346623
+ return !MUTATING_ACTIONS.has(input.action);
346624
+ },
346625
+ isDestructive(input) {
346626
+ return input.action === "delete" || input.action === "cancel_run";
346627
+ },
346628
+ toAutoClassifierInput(input) {
346629
+ return `${input.action}: ${input.name ?? input.automation_id ?? input.run_id ?? "automations"}`;
346630
+ },
346631
+ async description() {
346632
+ return "Create and fully manage persistent desktop automations. Automations can run once, on an interval, daily, on weekdays, weekly, or from a five-field cron schedule; run in a new, dedicated, or existing chat; use the project checkout or an isolated git worktree; and keep durable run history. Use this only when the user explicitly asks to schedule or manage future/background work. Never silently turn an ordinary request into an automation.";
346633
+ },
346634
+ async prompt() {
346635
+ return `Use Automation when the user explicitly asks to schedule, repeat, pause, resume, inspect, run, or delete background work in Maximo Syntax Desktop.
346636
+
346637
+ For create, provide name, prompt, and schedule. The current desktop project is used automatically. Default to destination=new_chat and workspace_mode=auto unless the user says otherwise. Use existing_chat only with a thread_id. Preserve the user's timezone intent; use an IANA timezone. Use action=list or list_runs before changing an ambiguous automation; list returns compact prompt previews, while get returns the complete definition. Paginate list_runs with limit and offset when needed. You may edit an automation that is currently executing, including this automation, when the user's request requires it. Never create an automation merely because work could be repeated.`;
346638
+ },
346639
+ async validateInput(input) {
346640
+ if (input.action === "create" && (!input.name?.trim() || !input.prompt?.trim() || !input.schedule)) {
346641
+ return {
346642
+ result: false,
346643
+ message: "create requires name, prompt, and schedule",
346644
+ errorCode: 1
346645
+ };
346646
+ }
346647
+ if (["get", "update", "pause", "resume", "delete", "run_now", "list_runs", "mark_runs_read"].includes(input.action) && !input.automation_id) {
346648
+ return {
346649
+ result: false,
346650
+ message: `${input.action} requires automation_id`,
346651
+ errorCode: 2
346652
+ };
346653
+ }
346654
+ if (input.action === "cancel_run" && !input.run_id) {
346655
+ return { result: false, message: "cancel_run requires run_id", errorCode: 3 };
346656
+ }
346657
+ if (input.destination === "existing_chat" && !input.thread_id) {
346658
+ return {
346659
+ result: false,
346660
+ message: "destination=existing_chat requires thread_id",
346661
+ errorCode: 4
346662
+ };
346663
+ }
346664
+ return { result: true };
346665
+ },
346666
+ renderToolUseMessage() {
346667
+ return null;
346668
+ },
346669
+ async call(input) {
346670
+ const { action: action2, ...argumentsValue } = input;
346671
+ const result = await callAutomationHost(action2, argumentsValue);
346672
+ return { data: { success: true, action: action2, result } };
346673
+ },
346674
+ mapToolResultToToolResultBlockParam(output, toolUseID) {
346675
+ return {
346676
+ tool_use_id: toolUseID,
346677
+ type: "tool_result",
346678
+ content: JSON.stringify(output.result ?? { success: output.success }, null, 2)
346679
+ };
346680
+ }
346681
+ });
346682
+ });
346683
+
345966
346684
  // src/utils/task/outputFormatting.ts
345967
346685
  function getMaxTaskOutputLength() {
345968
346686
  const result = validateBoundedIntEnvVar("TASK_MAX_OUTPUT_LENGTH", process.env.TASK_MAX_OUTPUT_LENGTH, TASK_MAX_OUTPUT_DEFAULT, TASK_MAX_OUTPUT_UPPER_LIMIT);
@@ -346418,7 +347136,7 @@ function TaskOutputResultDisplay(t0) {
346418
347136
  }
346419
347137
  return t5;
346420
347138
  }
346421
- var import_react_compiler_runtime118, jsx_runtime140, inputSchema20, TaskOutputTool;
347139
+ var import_react_compiler_runtime118, jsx_runtime140, inputSchema21, TaskOutputTool;
346422
347140
  var init_TaskOutputTool = __esm(() => {
346423
347141
  init_v4();
346424
347142
  init_FallbackToolUseErrorMessage();
@@ -346439,7 +347157,7 @@ var init_TaskOutputTool = __esm(() => {
346439
347157
  init_BashToolResultMessage();
346440
347158
  import_react_compiler_runtime118 = __toESM(require_dist4(), 1);
346441
347159
  jsx_runtime140 = __toESM(require_jsx_runtime(), 1);
346442
- inputSchema20 = lazySchema(() => exports_external.strictObject({
347160
+ inputSchema21 = lazySchema(() => exports_external.strictObject({
346443
347161
  task_id: exports_external.string().describe("The task ID to get output from"),
346444
347162
  block: semanticBoolean(exports_external.boolean().default(true)).describe("Whether to wait for completion"),
346445
347163
  timeout: exports_external.number().min(0).max(600000).default(30000).describe("Max wait time in ms")
@@ -346454,7 +347172,7 @@ var init_TaskOutputTool = __esm(() => {
346454
347172
  return "Task Output";
346455
347173
  },
346456
347174
  get inputSchema() {
346457
- return inputSchema20();
347175
+ return inputSchema21();
346458
347176
  },
346459
347177
  async description() {
346460
347178
  return "[Deprecated] — prefer Read on the task output file path";
@@ -346798,7 +347516,7 @@ function resolveWebSearchEndpoint(baseUrl) {
346798
347516
  }
346799
347517
  return { url: `${trimmed.replace(/\/v1$/, "")}/v1/api/web-search`, path: "/v1/api/web-search" };
346800
347518
  }
346801
- var inputSchema21, searchResultSchema, outputSchema17, WebSearchTool;
347519
+ var inputSchema22, searchResultSchema, outputSchema18, WebSearchTool;
346802
347520
  var init_WebSearchTool = __esm(() => {
346803
347521
  init_v4();
346804
347522
  init_maximoModels();
@@ -346806,7 +347524,7 @@ var init_WebSearchTool = __esm(() => {
346806
347524
  init_log3();
346807
347525
  init_prompt5();
346808
347526
  init_UI16();
346809
- inputSchema21 = lazySchema(() => exports_external.strictObject({
347527
+ inputSchema22 = lazySchema(() => exports_external.strictObject({
346810
347528
  query: exports_external.string().min(2).describe("The search query to use"),
346811
347529
  allowed_domains: exports_external.array(exports_external.string()).optional().describe("Only include search results from these domains"),
346812
347530
  blocked_domains: exports_external.array(exports_external.string()).optional().describe("Never include search results from these domains"),
@@ -346830,7 +347548,7 @@ var init_WebSearchTool = __esm(() => {
346830
347548
  content: exports_external.array(searchHitSchema).describe("Array of search hits")
346831
347549
  });
346832
347550
  });
346833
- outputSchema17 = lazySchema(() => exports_external.object({
347551
+ outputSchema18 = lazySchema(() => exports_external.object({
346834
347552
  query: exports_external.string().describe("The search query that was executed"),
346835
347553
  results: exports_external.array(exports_external.union([searchResultSchema(), exports_external.string()])).describe("Search results and/or text commentary from the model"),
346836
347554
  durationSeconds: exports_external.number().describe("Time taken to complete the search operation")
@@ -346861,10 +347579,10 @@ var init_WebSearchTool = __esm(() => {
346861
347579
  return true;
346862
347580
  },
346863
347581
  get inputSchema() {
346864
- return inputSchema21();
347582
+ return inputSchema22();
346865
347583
  },
346866
347584
  get outputSchema() {
346867
- return outputSchema17();
347585
+ return outputSchema18();
346868
347586
  },
346869
347587
  isConcurrencySafe() {
346870
347588
  return true;
@@ -347068,19 +347786,19 @@ function resolveImageEndpoint(baseUrl) {
347068
347786
  path: "/v1/api/image-generation"
347069
347787
  };
347070
347788
  }
347071
- var inputSchema22, outputSchema18, ImageGenerationTool;
347789
+ var inputSchema23, outputSchema19, ImageGenerationTool;
347072
347790
  var init_ImageGenerationTool = __esm(() => {
347073
347791
  init_v4();
347074
347792
  init_maximoModels();
347075
347793
  init_Tool();
347076
347794
  init_log3();
347077
- inputSchema22 = lazySchema(() => exports_external.strictObject({
347795
+ inputSchema23 = lazySchema(() => exports_external.strictObject({
347078
347796
  prompt: exports_external.string().min(1).describe("The image generation prompt to use"),
347079
347797
  aspect_ratio: exports_external.string().optional().describe('Aspect ratio for the image (e.g. "16:9", "1:1", "4:3")'),
347080
347798
  size: exports_external.string().optional().describe('Image size/resolution (e.g. "1K", "2K", "4K")'),
347081
347799
  output_count: exports_external.number().int().positive().max(4).optional().describe("Number of images to generate (1-4)")
347082
347800
  }));
347083
- outputSchema18 = lazySchema(() => exports_external.object({
347801
+ outputSchema19 = lazySchema(() => exports_external.object({
347084
347802
  prompt: exports_external.string().describe("The image prompt that was executed"),
347085
347803
  images: exports_external.array(exports_external.object({
347086
347804
  url: exports_external.string().describe("The URL of the generated image")
@@ -347110,10 +347828,10 @@ var init_ImageGenerationTool = __esm(() => {
347110
347828
  return true;
347111
347829
  },
347112
347830
  get inputSchema() {
347113
- return inputSchema22();
347831
+ return inputSchema23();
347114
347832
  },
347115
347833
  get outputSchema() {
347116
- return outputSchema18();
347834
+ return outputSchema19();
347117
347835
  },
347118
347836
  isConcurrencySafe() {
347119
347837
  return true;
@@ -347513,7 +348231,7 @@ var autoModeActive = false, autoModeFlagCli = false, autoModeCircuitBroken = fal
347513
348231
 
347514
348232
  // src/tools/ExitPlanModeTool/ExitPlanModeV2Tool.ts
347515
348233
  import { writeFile as writeFile21 } from "fs/promises";
347516
- var autoModeStateModule, permissionSetupModule, allowedPromptSchema, inputSchema23, _sdkInputSchema, outputSchema19, ExitPlanModeV2Tool;
348234
+ var autoModeStateModule, permissionSetupModule, allowedPromptSchema, inputSchema24, _sdkInputSchema, outputSchema20, ExitPlanModeV2Tool;
347517
348235
  var init_ExitPlanModeV2Tool = __esm(() => {
347518
348236
  init_v4();
347519
348237
  init_state();
@@ -347536,14 +348254,14 @@ var init_ExitPlanModeV2Tool = __esm(() => {
347536
348254
  tool: exports_external.enum(["Bash"]).describe("The tool this prompt applies to"),
347537
348255
  prompt: exports_external.string().describe('Semantic description of the action, e.g. "run tests", "install dependencies"')
347538
348256
  }));
347539
- inputSchema23 = lazySchema(() => exports_external.strictObject({
348257
+ inputSchema24 = lazySchema(() => exports_external.strictObject({
347540
348258
  allowedPrompts: exports_external.array(allowedPromptSchema()).optional().describe("Prompt-based permissions needed to implement the plan. These describe categories of actions rather than specific commands.")
347541
348259
  }).passthrough());
347542
- _sdkInputSchema = lazySchema(() => inputSchema23().extend({
348260
+ _sdkInputSchema = lazySchema(() => inputSchema24().extend({
347543
348261
  plan: exports_external.string().optional().describe("The plan content (injected by normalizeToolInput from disk)"),
347544
348262
  planFilePath: exports_external.string().optional().describe("The plan file path (injected by normalizeToolInput)")
347545
348263
  }));
347546
- outputSchema19 = lazySchema(() => exports_external.object({
348264
+ outputSchema20 = lazySchema(() => exports_external.object({
347547
348265
  plan: exports_external.string().nullable().describe("The plan that was presented to the user"),
347548
348266
  isAgent: exports_external.boolean(),
347549
348267
  filePath: exports_external.string().optional().describe("The file path where the plan was saved"),
@@ -347563,10 +348281,10 @@ var init_ExitPlanModeV2Tool = __esm(() => {
347563
348281
  return EXIT_PLAN_MODE_V2_TOOL_PROMPT;
347564
348282
  },
347565
348283
  get inputSchema() {
347566
- return inputSchema23();
348284
+ return inputSchema24();
347567
348285
  },
347568
348286
  get outputSchema() {
347569
- return outputSchema19();
348287
+ return outputSchema20();
347570
348288
  },
347571
348289
  userFacingName() {
347572
348290
  return "";
@@ -347792,11 +348510,11 @@ ${plan}`,
347792
348510
  });
347793
348511
 
347794
348512
  // src/tools/testing/TestingPermissionTool.tsx
347795
- var NAME = "TestingPermission", inputSchema24, TestingPermissionTool;
348513
+ var NAME = "TestingPermission", inputSchema25, TestingPermissionTool;
347796
348514
  var init_TestingPermissionTool = __esm(() => {
347797
348515
  init_v4();
347798
348516
  init_Tool();
347799
- inputSchema24 = lazySchema(() => exports_external.strictObject({}));
348517
+ inputSchema25 = lazySchema(() => exports_external.strictObject({}));
347800
348518
  TestingPermissionTool = buildTool({
347801
348519
  name: NAME,
347802
348520
  maxResultSizeChars: 1e5,
@@ -347807,7 +348525,7 @@ var init_TestingPermissionTool = __esm(() => {
347807
348525
  return "Test tool that always asks for permission before executing. Used for end-to-end testing.";
347808
348526
  },
347809
348527
  get inputSchema() {
347810
- return inputSchema24();
348528
+ return inputSchema25();
347811
348529
  },
347812
348530
  userFacingName() {
347813
348531
  return "TestingPermission";
@@ -347940,7 +348658,7 @@ function validateHtmlPreview(preview) {
347940
348658
  }
347941
348659
  return null;
347942
348660
  }
347943
- var import_react_compiler_runtime119, jsx_runtime143, questionOptionSchema, questionSchema, annotationsSchema, UNIQUENESS_REFINE, commonFields, inputSchema25, outputSchema20, AskUserQuestionTool;
348661
+ var import_react_compiler_runtime119, jsx_runtime143, questionOptionSchema, questionSchema, annotationsSchema, UNIQUENESS_REFINE, commonFields, inputSchema26, outputSchema21, AskUserQuestionTool;
347944
348662
  var init_AskUserQuestionTool = __esm(() => {
347945
348663
  init_state();
347946
348664
  init_MessageResponse();
@@ -347993,13 +348711,13 @@ var init_AskUserQuestionTool = __esm(() => {
347993
348711
  source: exports_external.string().optional().describe('Optional identifier for the source of this question (e.g., "remember" for /remember command). Used for analytics tracking.')
347994
348712
  }).optional().describe("Optional metadata for tracking and analytics purposes. Not displayed to user.")
347995
348713
  }));
347996
- inputSchema25 = lazySchema(() => exports_external.strictObject({
348714
+ inputSchema26 = lazySchema(() => exports_external.strictObject({
347997
348715
  questions: exports_external.array(questionSchema()).min(1).max(4).describe("Questions to ask the user (1-4 questions)"),
347998
348716
  ...commonFields()
347999
348717
  }).refine(UNIQUENESS_REFINE.check, {
348000
348718
  message: UNIQUENESS_REFINE.message
348001
348719
  }));
348002
- outputSchema20 = lazySchema(() => exports_external.object({
348720
+ outputSchema21 = lazySchema(() => exports_external.object({
348003
348721
  questions: exports_external.array(questionSchema()).describe("The questions that were asked"),
348004
348722
  answers: exports_external.record(exports_external.string(), exports_external.string()).describe("The answers provided by the user (question text -> answer string; multi-select answers are comma-separated)"),
348005
348723
  annotations: annotationsSchema()
@@ -348020,10 +348738,10 @@ var init_AskUserQuestionTool = __esm(() => {
348020
348738
  return ASK_USER_QUESTION_TOOL_PROMPT + PREVIEW_FEATURE_PROMPT[format4];
348021
348739
  },
348022
348740
  get inputSchema() {
348023
- return inputSchema25();
348741
+ return inputSchema26();
348024
348742
  },
348025
348743
  get outputSchema() {
348026
- return outputSchema20();
348744
+ return outputSchema21();
348027
348745
  },
348028
348746
  userFacingName() {
348029
348747
  return "";
@@ -349188,7 +349906,7 @@ function countUniqueFilesFromOutgoingCalls(calls) {
349188
349906
  const validUris = calls.map((call5) => call5.to?.uri).filter((uri) => uri);
349189
349907
  return new Set(validUris).size;
349190
349908
  }
349191
- var MAX_LSP_FILE_SIZE_BYTES = 1e7, inputSchema26, outputSchema21, LSPTool;
349909
+ var MAX_LSP_FILE_SIZE_BYTES = 1e7, inputSchema27, outputSchema22, LSPTool;
349192
349910
  var init_LSPTool = __esm(() => {
349193
349911
  init_v4();
349194
349912
  init_manager();
@@ -349204,7 +349922,7 @@ var init_LSPTool = __esm(() => {
349204
349922
  init_formatters();
349205
349923
  init_schemas5();
349206
349924
  init_UI18();
349207
- inputSchema26 = lazySchema(() => exports_external.strictObject({
349925
+ inputSchema27 = lazySchema(() => exports_external.strictObject({
349208
349926
  operation: exports_external.enum([
349209
349927
  "goToDefinition",
349210
349928
  "findReferences",
@@ -349220,7 +349938,7 @@ var init_LSPTool = __esm(() => {
349220
349938
  line: exports_external.number().int().positive().describe("The line number (1-based, as shown in editors)"),
349221
349939
  character: exports_external.number().int().positive().describe("The character offset (1-based, as shown in editors)")
349222
349940
  }));
349223
- outputSchema21 = lazySchema(() => exports_external.object({
349941
+ outputSchema22 = lazySchema(() => exports_external.object({
349224
349942
  operation: exports_external.enum([
349225
349943
  "goToDefinition",
349226
349944
  "findReferences",
@@ -349251,10 +349969,10 @@ var init_LSPTool = __esm(() => {
349251
349969
  return isLspConnected();
349252
349970
  },
349253
349971
  get inputSchema() {
349254
- return inputSchema26();
349972
+ return inputSchema27();
349255
349973
  },
349256
349974
  get outputSchema() {
349257
- return outputSchema21();
349975
+ return outputSchema22();
349258
349976
  },
349259
349977
  isConcurrencySafe() {
349260
349978
  return true;
@@ -349703,7 +350421,7 @@ var init_UI19 = __esm(() => {
349703
350421
  });
349704
350422
 
349705
350423
  // src/tools/EnterPlanModeTool/EnterPlanModeTool.ts
349706
- var inputSchema27, outputSchema22, EnterPlanModeTool;
350424
+ var inputSchema28, outputSchema23, EnterPlanModeTool;
349707
350425
  var init_EnterPlanModeTool = __esm(() => {
349708
350426
  init_v4();
349709
350427
  init_state();
@@ -349713,8 +350431,8 @@ var init_EnterPlanModeTool = __esm(() => {
349713
350431
  init_planModeV2();
349714
350432
  init_prompt16();
349715
350433
  init_UI19();
349716
- inputSchema27 = lazySchema(() => exports_external.strictObject({}));
349717
- outputSchema22 = lazySchema(() => exports_external.object({
350434
+ inputSchema28 = lazySchema(() => exports_external.strictObject({}));
350435
+ outputSchema23 = lazySchema(() => exports_external.object({
349718
350436
  message: exports_external.string().describe("Confirmation that plan mode was entered")
349719
350437
  }));
349720
350438
  EnterPlanModeTool = buildTool({
@@ -349728,10 +350446,10 @@ var init_EnterPlanModeTool = __esm(() => {
349728
350446
  return getEnterPlanModeToolPrompt();
349729
350447
  },
349730
350448
  get inputSchema() {
349731
- return inputSchema27();
350449
+ return inputSchema28();
349732
350450
  },
349733
350451
  get outputSchema() {
349734
- return outputSchema22();
350452
+ return outputSchema23();
349735
350453
  },
349736
350454
  userFacingName() {
349737
350455
  return "";
@@ -349885,7 +350603,7 @@ var init_UI20 = __esm(() => {
349885
350603
  });
349886
350604
 
349887
350605
  // src/tools/EnterWorktreeTool/EnterWorktreeTool.ts
349888
- var inputSchema28, outputSchema23, EnterWorktreeTool;
350606
+ var inputSchema29, outputSchema24, EnterWorktreeTool;
349889
350607
  var init_EnterWorktreeTool = __esm(() => {
349890
350608
  init_v4();
349891
350609
  init_state();
@@ -349900,7 +350618,7 @@ var init_EnterWorktreeTool = __esm(() => {
349900
350618
  init_sessionStorage();
349901
350619
  init_worktree();
349902
350620
  init_UI20();
349903
- inputSchema28 = lazySchema(() => exports_external.strictObject({
350621
+ inputSchema29 = lazySchema(() => exports_external.strictObject({
349904
350622
  name: exports_external.string().superRefine((s, ctx) => {
349905
350623
  try {
349906
350624
  validateWorktreeSlug(s);
@@ -349909,7 +350627,7 @@ var init_EnterWorktreeTool = __esm(() => {
349909
350627
  }
349910
350628
  }).optional().describe('Optional name for the worktree. Each "/"-separated segment may contain only letters, digits, dots, underscores, and dashes; max 64 chars total. A random name is generated if not provided.')
349911
350629
  }));
349912
- outputSchema23 = lazySchema(() => exports_external.object({
350630
+ outputSchema24 = lazySchema(() => exports_external.object({
349913
350631
  worktreePath: exports_external.string(),
349914
350632
  worktreeBranch: exports_external.string().optional(),
349915
350633
  message: exports_external.string()
@@ -349925,10 +350643,10 @@ var init_EnterWorktreeTool = __esm(() => {
349925
350643
  return getEnterWorktreeToolPrompt();
349926
350644
  },
349927
350645
  get inputSchema() {
349928
- return inputSchema28();
350646
+ return inputSchema29();
349929
350647
  },
349930
350648
  get outputSchema() {
349931
- return outputSchema23();
350649
+ return outputSchema24();
349932
350650
  },
349933
350651
  userFacingName() {
349934
350652
  return "Creating worktree";
@@ -350095,7 +350813,7 @@ function restoreSessionToOriginalCwd(originalCwd, projectRootIsWorktree) {
350095
350813
  clearMemoryFileCaches();
350096
350814
  getPlansDirectory.cache.clear?.();
350097
350815
  }
350098
- var inputSchema29, outputSchema24, ExitWorktreeTool;
350816
+ var inputSchema30, outputSchema25, ExitWorktreeTool;
350099
350817
  var init_ExitWorktreeTool = __esm(() => {
350100
350818
  init_v4();
350101
350819
  init_state();
@@ -350110,11 +350828,11 @@ var init_ExitWorktreeTool = __esm(() => {
350110
350828
  init_sessionStorage();
350111
350829
  init_worktree();
350112
350830
  init_UI21();
350113
- inputSchema29 = lazySchema(() => exports_external.strictObject({
350831
+ inputSchema30 = lazySchema(() => exports_external.strictObject({
350114
350832
  action: exports_external.enum(["keep", "remove"]).describe('"keep" leaves the worktree and branch on disk; "remove" deletes both.'),
350115
350833
  discard_changes: exports_external.boolean().optional().describe('Required true when action is "remove" and the worktree has uncommitted files or unmerged commits. The tool will refuse and list them otherwise.')
350116
350834
  }));
350117
- outputSchema24 = lazySchema(() => exports_external.object({
350835
+ outputSchema25 = lazySchema(() => exports_external.object({
350118
350836
  action: exports_external.enum(["keep", "remove"]),
350119
350837
  originalCwd: exports_external.string(),
350120
350838
  worktreePath: exports_external.string(),
@@ -350135,10 +350853,10 @@ var init_ExitWorktreeTool = __esm(() => {
350135
350853
  return getExitWorktreeToolPrompt();
350136
350854
  },
350137
350855
  get inputSchema() {
350138
- return inputSchema29();
350856
+ return inputSchema30();
350139
350857
  },
350140
350858
  get outputSchema() {
350141
- return outputSchema24();
350859
+ return outputSchema25();
350142
350860
  },
350143
350861
  userFacingName() {
350144
350862
  return "Exiting worktree";
@@ -350265,433 +350983,6 @@ var init_ExitWorktreeTool = __esm(() => {
350265
350983
  // src/tools/ConfigTool/constants.ts
350266
350984
  var CONFIG_TOOL_NAME = "Config";
350267
350985
 
350268
- // src/utils/model/modelOptions.ts
350269
- function getDefaultOptionForUser(fastMode = false) {
350270
- if (process.env.USER_TYPE === "ant") {
350271
- const currentModel = renderDefaultModelSetting(getDefaultMainLoopModelSetting());
350272
- return {
350273
- value: null,
350274
- label: "Default (recommended)",
350275
- description: `Use the default model for Ants (currently ${currentModel})`,
350276
- descriptionForModel: `Default model (currently ${currentModel})`
350277
- };
350278
- }
350279
- if (isMaximoAISubscriber()) {
350280
- return {
350281
- value: null,
350282
- label: "Default (recommended)",
350283
- description: getMaximoAiUserDefaultModelDescription(fastMode)
350284
- };
350285
- }
350286
- const is3P = getAPIProvider() !== "firstParty";
350287
- return {
350288
- value: null,
350289
- label: "Default (recommended)",
350290
- description: `Use the default model (currently ${renderDefaultModelSetting(getDefaultMainLoopModelSetting())})${is3P ? "" : ` · ${formatModelPricing(COST_TIER_3_15)}`}`
350291
- };
350292
- }
350293
- function getCustomSonnetOption() {
350294
- const is3P = getAPIProvider() !== "firstParty";
350295
- const customSonnetModel = process.env.ANTHROPIC_DEFAULT_SONNET_MODEL;
350296
- if (is3P && customSonnetModel) {
350297
- const is1m = has1mContext(customSonnetModel);
350298
- return {
350299
- value: "sonnet",
350300
- label: process.env.ANTHROPIC_DEFAULT_SONNET_MODEL_NAME ?? customSonnetModel,
350301
- description: process.env.ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION ?? `Custom Sonnet model${is1m ? " (1M context)" : ""}`,
350302
- descriptionForModel: `${process.env.ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION ?? `Custom Sonnet model${is1m ? " with 1M context" : ""}`} (${customSonnetModel})`
350303
- };
350304
- }
350305
- }
350306
- function getSonnet46Option() {
350307
- const is3P = getAPIProvider() !== "firstParty";
350308
- return {
350309
- value: is3P ? getModelStrings2().sonnet46 : "sonnet",
350310
- label: "Sonnet",
350311
- description: `Sonnet 4.6 · Best for everyday tasks${is3P ? "" : ` · ${formatModelPricing(COST_TIER_3_15)}`}`,
350312
- descriptionForModel: "Sonnet 4.6 - best for everyday tasks. Generally recommended for most coding tasks"
350313
- };
350314
- }
350315
- function getCustomOpusOption() {
350316
- const is3P = getAPIProvider() !== "firstParty";
350317
- const customOpusModel = process.env.ANTHROPIC_DEFAULT_OPUS_MODEL;
350318
- if (is3P && customOpusModel) {
350319
- const is1m = has1mContext(customOpusModel);
350320
- return {
350321
- value: "opus",
350322
- label: process.env.ANTHROPIC_DEFAULT_OPUS_MODEL_NAME ?? customOpusModel,
350323
- description: process.env.ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION ?? `Custom Opus model${is1m ? " (1M context)" : ""}`,
350324
- descriptionForModel: `${process.env.ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION ?? `Custom Opus model${is1m ? " with 1M context" : ""}`} (${customOpusModel})`
350325
- };
350326
- }
350327
- }
350328
- function getOpus41Option() {
350329
- return {
350330
- value: "opus",
350331
- label: "Opus 4.1",
350332
- description: `Opus 4.1 · Legacy`,
350333
- descriptionForModel: "Opus 4.1 - legacy version"
350334
- };
350335
- }
350336
- function getOpus46Option(fastMode = false) {
350337
- const is3P = getAPIProvider() !== "firstParty";
350338
- return {
350339
- value: is3P ? getModelStrings2().opus46 : "opus",
350340
- label: "Opus",
350341
- description: `Opus 4.6 · Most capable for complex work${getOpus46PricingSuffix(fastMode)}`,
350342
- descriptionForModel: "Opus 4.6 - most capable for complex work"
350343
- };
350344
- }
350345
- function getSonnet46_1MOption() {
350346
- const is3P = getAPIProvider() !== "firstParty";
350347
- return {
350348
- value: is3P ? getModelStrings2().sonnet46 + "[1m]" : "sonnet[1m]",
350349
- label: "Sonnet (1M context)",
350350
- description: `Sonnet 4.6 for long sessions${is3P ? "" : ` · ${formatModelPricing(COST_TIER_3_15)}`}`,
350351
- descriptionForModel: "Sonnet 4.6 with 1M context window - for long sessions with large codebases"
350352
- };
350353
- }
350354
- function getOpus46_1MOption(fastMode = false) {
350355
- const is3P = getAPIProvider() !== "firstParty";
350356
- return {
350357
- value: is3P ? getModelStrings2().opus46 + "[1m]" : "opus[1m]",
350358
- label: "Opus (1M context)",
350359
- description: `Opus 4.6 for long sessions${getOpus46PricingSuffix(fastMode)}`,
350360
- descriptionForModel: "Opus 4.6 with 1M context window - for long sessions with large codebases"
350361
- };
350362
- }
350363
- function getCustomHaikuOption() {
350364
- const is3P = getAPIProvider() !== "firstParty";
350365
- const customHaikuModel = process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL;
350366
- if (is3P && customHaikuModel) {
350367
- return {
350368
- value: "haiku",
350369
- label: process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME ?? customHaikuModel,
350370
- description: process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION ?? "Custom Haiku model",
350371
- descriptionForModel: `${process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION ?? "Custom Haiku model"} (${customHaikuModel})`
350372
- };
350373
- }
350374
- }
350375
- function getHaiku45Option() {
350376
- const is3P = getAPIProvider() !== "firstParty";
350377
- return {
350378
- value: "haiku",
350379
- label: "Haiku",
350380
- description: `Haiku 4.5 · Fastest for quick answers${is3P ? "" : ` · ${formatModelPricing(COST_HAIKU_45)}`}`,
350381
- descriptionForModel: "Haiku 4.5 - fastest for quick answers. Lower cost but less capable than Sonnet 4.6."
350382
- };
350383
- }
350384
- function getHaiku35Option() {
350385
- const is3P = getAPIProvider() !== "firstParty";
350386
- return {
350387
- value: "haiku",
350388
- label: "Haiku",
350389
- description: `Haiku 3.5 for simple tasks${is3P ? "" : ` · ${formatModelPricing(COST_HAIKU_35)}`}`,
350390
- descriptionForModel: "Haiku 3.5 - faster and lower cost, but less capable than Sonnet. Use for simple tasks."
350391
- };
350392
- }
350393
- function getHaikuOption() {
350394
- const haikuModel = getDefaultHaikuModel();
350395
- return haikuModel === getModelStrings2().haiku45 ? getHaiku45Option() : getHaiku35Option();
350396
- }
350397
- function getMaxOpusOption(fastMode = false) {
350398
- return {
350399
- value: "opus",
350400
- label: "Opus",
350401
- description: `Opus 4.6 · Most capable for complex work${fastMode ? getOpus46PricingSuffix(true) : ""}`
350402
- };
350403
- }
350404
- function getMaxSonnet46_1MOption() {
350405
- const is3P = getAPIProvider() !== "firstParty";
350406
- const billingInfo = isMaximoAISubscriber() ? " · Billed as extra usage" : "";
350407
- return {
350408
- value: "sonnet[1m]",
350409
- label: "Sonnet (1M context)",
350410
- description: `Sonnet 4.6 with 1M context${billingInfo}${is3P ? "" : ` · ${formatModelPricing(COST_TIER_3_15)}`}`
350411
- };
350412
- }
350413
- function getMaxOpus46_1MOption(fastMode = false) {
350414
- const billingInfo = isMaximoAISubscriber() ? " · Billed as extra usage" : "";
350415
- return {
350416
- value: "opus[1m]",
350417
- label: "Opus (1M context)",
350418
- description: `Opus 4.6 with 1M context${billingInfo}${getOpus46PricingSuffix(fastMode)}`
350419
- };
350420
- }
350421
- function getMergedOpus1MOption(fastMode = false) {
350422
- const is3P = getAPIProvider() !== "firstParty";
350423
- return {
350424
- value: is3P ? getModelStrings2().opus46 + "[1m]" : "opus[1m]",
350425
- label: "Opus (1M context)",
350426
- description: `Opus 4.6 with 1M context · Most capable for complex work${!is3P && fastMode ? getOpus46PricingSuffix(fastMode) : ""}`,
350427
- descriptionForModel: "Opus 4.6 with 1M context - most capable for complex work"
350428
- };
350429
- }
350430
- function getOpusPlanOption() {
350431
- return {
350432
- value: "opusplan",
350433
- label: "Opus Plan Mode",
350434
- description: "Use Opus 4.6 in plan mode, Sonnet 4.6 otherwise"
350435
- };
350436
- }
350437
- function getCodexPlanOption() {
350438
- return {
350439
- value: "codexplan",
350440
- label: "Codex Plan",
350441
- description: "GPT-5.4 on the Codex backend with high reasoning"
350442
- };
350443
- }
350444
- function getCodexSparkOption() {
350445
- return {
350446
- value: "codexspark",
350447
- label: "Codex Spark",
350448
- description: "GPT-5.3 Codex Spark on the Codex backend for fast tool loops"
350449
- };
350450
- }
350451
- function getModelOptionsBase(fastMode = false) {
350452
- if (process.env.USER_TYPE === "ant") {
350453
- const antModelOptions = getAntModels().map((m) => ({
350454
- value: m.alias,
350455
- label: m.label,
350456
- description: m.description ?? `[ANT-ONLY] ${m.label} (${m.model})`
350457
- }));
350458
- return [
350459
- getDefaultOptionForUser(),
350460
- ...antModelOptions,
350461
- getMergedOpus1MOption(fastMode),
350462
- getSonnet46Option(),
350463
- getSonnet46_1MOption(),
350464
- getHaiku45Option()
350465
- ];
350466
- }
350467
- if (isMaximoAISubscriber()) {
350468
- if (isMaxSubscriber() || isTeamPremiumSubscriber()) {
350469
- const premiumOptions = [getDefaultOptionForUser(fastMode)];
350470
- if (!isOpus1mMergeEnabled() && checkOpus1mAccess()) {
350471
- premiumOptions.push(getMaxOpus46_1MOption(fastMode));
350472
- }
350473
- premiumOptions.push(MaxSonnet46Option);
350474
- if (checkSonnet1mAccess()) {
350475
- premiumOptions.push(getMaxSonnet46_1MOption());
350476
- }
350477
- premiumOptions.push(MaxHaiku45Option);
350478
- return premiumOptions;
350479
- }
350480
- const standardOptions = [getDefaultOptionForUser(fastMode)];
350481
- if (checkSonnet1mAccess()) {
350482
- standardOptions.push(getMaxSonnet46_1MOption());
350483
- }
350484
- if (isOpus1mMergeEnabled()) {
350485
- standardOptions.push(getMergedOpus1MOption(fastMode));
350486
- } else {
350487
- standardOptions.push(getMaxOpusOption(fastMode));
350488
- if (checkOpus1mAccess()) {
350489
- standardOptions.push(getMaxOpus46_1MOption(fastMode));
350490
- }
350491
- }
350492
- standardOptions.push(MaxHaiku45Option);
350493
- return standardOptions;
350494
- }
350495
- if (getAPIProvider() === "firstParty") {
350496
- const payg1POptions = [getDefaultOptionForUser(fastMode)];
350497
- if (checkSonnet1mAccess()) {
350498
- payg1POptions.push(getSonnet46_1MOption());
350499
- }
350500
- if (isOpus1mMergeEnabled()) {
350501
- payg1POptions.push(getMergedOpus1MOption(fastMode));
350502
- } else {
350503
- payg1POptions.push(getOpus46Option(fastMode));
350504
- if (checkOpus1mAccess()) {
350505
- payg1POptions.push(getOpus46_1MOption(fastMode));
350506
- }
350507
- }
350508
- payg1POptions.push(getHaiku45Option());
350509
- return payg1POptions;
350510
- }
350511
- const payg3pOptions = [getDefaultOptionForUser(fastMode)];
350512
- if (getAPIProvider() === "openai") {
350513
- payg3pOptions.push(getCodexPlanOption(), getCodexSparkOption());
350514
- }
350515
- const customSonnet = getCustomSonnetOption();
350516
- if (customSonnet !== undefined) {
350517
- payg3pOptions.push(customSonnet);
350518
- } else {
350519
- payg3pOptions.push(getSonnet46Option());
350520
- if (checkSonnet1mAccess()) {
350521
- payg3pOptions.push(getSonnet46_1MOption());
350522
- }
350523
- }
350524
- const customOpus = getCustomOpusOption();
350525
- if (customOpus !== undefined) {
350526
- payg3pOptions.push(customOpus);
350527
- } else {
350528
- payg3pOptions.push(getOpus41Option());
350529
- payg3pOptions.push(getOpus46Option(fastMode));
350530
- if (checkOpus1mAccess()) {
350531
- payg3pOptions.push(getOpus46_1MOption(fastMode));
350532
- }
350533
- }
350534
- const customHaiku = getCustomHaikuOption();
350535
- if (customHaiku !== undefined) {
350536
- payg3pOptions.push(customHaiku);
350537
- } else {
350538
- payg3pOptions.push(getHaikuOption());
350539
- }
350540
- return payg3pOptions;
350541
- }
350542
- function getModelFamilyInfo(model) {
350543
- const canonical = getCanonicalName(model);
350544
- if (canonical.includes("claude-sonnet-4-6") || canonical.includes("claude-sonnet-4-5") || canonical.includes("claude-sonnet-4-") || canonical.includes("claude-3-7-sonnet") || canonical.includes("claude-3-5-sonnet")) {
350545
- const currentName = getMarketingNameForModel(getDefaultSonnetModel());
350546
- if (currentName) {
350547
- return { alias: "Sonnet", currentVersionName: currentName };
350548
- }
350549
- }
350550
- if (canonical.includes("claude-opus-4")) {
350551
- const currentName = getMarketingNameForModel(getDefaultOpusModel());
350552
- if (currentName) {
350553
- return { alias: "Opus", currentVersionName: currentName };
350554
- }
350555
- }
350556
- if (canonical.includes("claude-haiku") || canonical.includes("claude-3-5-haiku")) {
350557
- const currentName = getMarketingNameForModel(getDefaultHaikuModel());
350558
- if (currentName) {
350559
- return { alias: "Haiku", currentVersionName: currentName };
350560
- }
350561
- }
350562
- return null;
350563
- }
350564
- function getKnownModelOption(model) {
350565
- const marketingName = getMarketingNameForModel(model);
350566
- if (!marketingName)
350567
- return null;
350568
- const familyInfo = getModelFamilyInfo(model);
350569
- if (!familyInfo) {
350570
- return {
350571
- value: model,
350572
- label: marketingName,
350573
- description: model
350574
- };
350575
- }
350576
- if (marketingName !== familyInfo.currentVersionName) {
350577
- return {
350578
- value: model,
350579
- label: marketingName,
350580
- description: `Newer version available · select ${familyInfo.alias} for ${familyInfo.currentVersionName}`
350581
- };
350582
- }
350583
- return {
350584
- value: model,
350585
- label: marketingName,
350586
- description: model
350587
- };
350588
- }
350589
- async function getModelOptionsAsync(fastMode = false) {
350590
- const maximoOptions = await getMaximoModelOptions();
350591
- if (maximoOptions) {
350592
- return filterModelOptionsByAllowlist([
350593
- getDefaultOptionForUser(fastMode),
350594
- ...maximoOptions
350595
- ]);
350596
- }
350597
- return getModelOptionsBase(fastMode);
350598
- }
350599
- function getModelOptions(fastMode = false) {
350600
- const maximoOptions = getCachedMaximoModelOptions();
350601
- if (maximoOptions) {
350602
- return filterModelOptionsByAllowlist([
350603
- getDefaultOptionForUser(fastMode),
350604
- ...maximoOptions
350605
- ]);
350606
- }
350607
- const options2 = getModelOptionsBase(fastMode);
350608
- const envCustomModel = process.env.ANTHROPIC_CUSTOM_MODEL_OPTION;
350609
- if (envCustomModel && !options2.some((existing) => existing.value === envCustomModel)) {
350610
- options2.push({
350611
- value: envCustomModel,
350612
- label: process.env.ANTHROPIC_CUSTOM_MODEL_OPTION_NAME ?? envCustomModel,
350613
- description: process.env.ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION ?? `Custom model (${envCustomModel})`
350614
- });
350615
- }
350616
- for (const opt of getGlobalConfig().additionalModelOptionsCache ?? []) {
350617
- if (!options2.some((existing) => existing.value === opt.value)) {
350618
- options2.push(opt);
350619
- }
350620
- }
350621
- let customModel = null;
350622
- const currentMainLoopModel = getUserSpecifiedModelSetting();
350623
- const initialMainLoopModel = getInitialMainLoopModel();
350624
- if (currentMainLoopModel !== undefined && currentMainLoopModel !== null) {
350625
- customModel = currentMainLoopModel;
350626
- } else if (initialMainLoopModel !== null) {
350627
- customModel = initialMainLoopModel;
350628
- }
350629
- if (customModel === null || options2.some((opt) => opt.value === customModel)) {
350630
- return filterModelOptionsByAllowlist(options2);
350631
- } else if (customModel === "opusplan") {
350632
- return filterModelOptionsByAllowlist([...options2, getOpusPlanOption()]);
350633
- } else if (customModel === "codexplan") {
350634
- return filterModelOptionsByAllowlist([...options2, getCodexPlanOption()]);
350635
- } else if (customModel === "codexspark") {
350636
- return filterModelOptionsByAllowlist([...options2, getCodexSparkOption()]);
350637
- } else if (customModel === "opus" && getAPIProvider() === "firstParty") {
350638
- return filterModelOptionsByAllowlist([
350639
- ...options2,
350640
- getMaxOpusOption(fastMode)
350641
- ]);
350642
- } else if (customModel === "opus[1m]" && getAPIProvider() === "firstParty") {
350643
- return filterModelOptionsByAllowlist([
350644
- ...options2,
350645
- getMergedOpus1MOption(fastMode)
350646
- ]);
350647
- } else {
350648
- const knownOption = getKnownModelOption(customModel);
350649
- if (knownOption) {
350650
- options2.push(knownOption);
350651
- } else {
350652
- options2.push({
350653
- value: customModel,
350654
- label: customModel,
350655
- description: "Custom model"
350656
- });
350657
- }
350658
- return filterModelOptionsByAllowlist(options2);
350659
- }
350660
- }
350661
- function filterModelOptionsByAllowlist(options2) {
350662
- const settings = getSettings_DEPRECATED() || {};
350663
- if (!settings.availableModels) {
350664
- return options2;
350665
- }
350666
- return options2.filter((opt) => opt.value === null || opt.value !== null && isModelAllowed(opt.value));
350667
- }
350668
- var MaxSonnet46Option, MaxHaiku45Option;
350669
- var init_modelOptions = __esm(() => {
350670
- init_state();
350671
- init_antModels();
350672
- init_auth2();
350673
- init_modelStrings();
350674
- init_modelCost();
350675
- init_settings2();
350676
- init_check1mAccess();
350677
- init_providers();
350678
- init_modelAllowlist();
350679
- init_model();
350680
- init_context();
350681
- init_config2();
350682
- init_maximoModels();
350683
- MaxSonnet46Option = {
350684
- value: "sonnet",
350685
- label: "Sonnet",
350686
- description: "Sonnet 4.6 · Best for everyday tasks"
350687
- };
350688
- MaxHaiku45Option = {
350689
- value: "haiku",
350690
- label: "Haiku",
350691
- description: "Haiku 4.5 · Fastest for quick answers"
350692
- };
350693
- });
350694
-
350695
350986
  // src/voice/voiceModeEnabled.ts
350696
350987
  var init_voiceModeEnabled = __esm(() => {
350697
350988
  init_growthbook();
@@ -351133,7 +351424,7 @@ function buildNestedObject(path16, value) {
351133
351424
  }
351134
351425
  return { [key]: buildNestedObject(path16.slice(1), value) };
351135
351426
  }
351136
- var inputSchema30, outputSchema25, ConfigTool;
351427
+ var inputSchema31, outputSchema26, ConfigTool;
351137
351428
  var init_ConfigTool = __esm(() => {
351138
351429
  init_v4();
351139
351430
  init_analytics();
@@ -351146,11 +351437,11 @@ var init_ConfigTool = __esm(() => {
351146
351437
  init_prompt17();
351147
351438
  init_supportedSettings();
351148
351439
  init_UI22();
351149
- inputSchema30 = lazySchema(() => exports_external.strictObject({
351440
+ inputSchema31 = lazySchema(() => exports_external.strictObject({
351150
351441
  setting: exports_external.string().describe('The setting key (e.g., "theme", "model", "permissions.defaultMode")'),
351151
351442
  value: exports_external.union([exports_external.string(), exports_external.boolean(), exports_external.number()]).optional().describe("The new value. Omit to get current value.")
351152
351443
  }));
351153
- outputSchema25 = lazySchema(() => exports_external.object({
351444
+ outputSchema26 = lazySchema(() => exports_external.object({
351154
351445
  success: exports_external.boolean(),
351155
351446
  operation: exports_external.enum(["get", "set"]).optional(),
351156
351447
  setting: exports_external.string().optional(),
@@ -351170,10 +351461,10 @@ var init_ConfigTool = __esm(() => {
351170
351461
  return generatePrompt();
351171
351462
  },
351172
351463
  get inputSchema() {
351173
- return inputSchema30();
351464
+ return inputSchema31();
351174
351465
  },
351175
351466
  get outputSchema() {
351176
- return outputSchema25();
351467
+ return outputSchema26();
351177
351468
  },
351178
351469
  userFacingName() {
351179
351470
  return "Config";
@@ -351445,7 +351736,7 @@ var init_prompt18 = __esm(() => {
351445
351736
  });
351446
351737
 
351447
351738
  // src/tools/TaskCreateTool/TaskCreateTool.ts
351448
- var inputSchema31, outputSchema26, TaskCreateTool;
351739
+ var inputSchema32, outputSchema27, TaskCreateTool;
351449
351740
  var init_TaskCreateTool = __esm(() => {
351450
351741
  init_v4();
351451
351742
  init_Tool();
@@ -351453,13 +351744,13 @@ var init_TaskCreateTool = __esm(() => {
351453
351744
  init_tasks();
351454
351745
  init_teammate();
351455
351746
  init_prompt18();
351456
- inputSchema31 = lazySchema(() => exports_external.strictObject({
351747
+ inputSchema32 = lazySchema(() => exports_external.strictObject({
351457
351748
  subject: exports_external.string().describe("A brief title for the task"),
351458
351749
  description: exports_external.string().describe("What needs to be done"),
351459
351750
  activeForm: exports_external.string().optional().describe('Present continuous form shown in spinner when in_progress (e.g., "Running tests")'),
351460
351751
  metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional().describe("Arbitrary metadata to attach to the task")
351461
351752
  }));
351462
- outputSchema26 = lazySchema(() => exports_external.object({
351753
+ outputSchema27 = lazySchema(() => exports_external.object({
351463
351754
  task: exports_external.object({
351464
351755
  id: exports_external.string(),
351465
351756
  subject: exports_external.string()
@@ -351476,10 +351767,10 @@ var init_TaskCreateTool = __esm(() => {
351476
351767
  return getPrompt4();
351477
351768
  },
351478
351769
  get inputSchema() {
351479
- return inputSchema31();
351770
+ return inputSchema32();
351480
351771
  },
351481
351772
  get outputSchema() {
351482
- return outputSchema26();
351773
+ return outputSchema27();
351483
351774
  },
351484
351775
  userFacingName() {
351485
351776
  return "TaskCreate";
@@ -351570,15 +351861,15 @@ Returns full task details:
351570
351861
  `;
351571
351862
 
351572
351863
  // src/tools/TaskGetTool/TaskGetTool.ts
351573
- var inputSchema32, outputSchema27, TaskGetTool;
351864
+ var inputSchema33, outputSchema28, TaskGetTool;
351574
351865
  var init_TaskGetTool = __esm(() => {
351575
351866
  init_v4();
351576
351867
  init_Tool();
351577
351868
  init_tasks();
351578
- inputSchema32 = lazySchema(() => exports_external.strictObject({
351869
+ inputSchema33 = lazySchema(() => exports_external.strictObject({
351579
351870
  taskId: exports_external.string().describe("The ID of the task to retrieve")
351580
351871
  }));
351581
- outputSchema27 = lazySchema(() => exports_external.object({
351872
+ outputSchema28 = lazySchema(() => exports_external.object({
351582
351873
  task: exports_external.object({
351583
351874
  id: exports_external.string(),
351584
351875
  subject: exports_external.string(),
@@ -351599,10 +351890,10 @@ var init_TaskGetTool = __esm(() => {
351599
351890
  return PROMPT6;
351600
351891
  },
351601
351892
  get inputSchema() {
351602
- return inputSchema32();
351893
+ return inputSchema33();
351603
351894
  },
351604
351895
  get outputSchema() {
351605
- return outputSchema27();
351896
+ return outputSchema28();
351606
351897
  },
351607
351898
  userFacingName() {
351608
351899
  return "TaskGet";
@@ -351754,7 +352045,7 @@ Set up task dependencies:
351754
352045
  `;
351755
352046
 
351756
352047
  // src/tools/TaskUpdateTool/TaskUpdateTool.ts
351757
- var inputSchema33, outputSchema28, TaskUpdateTool;
352048
+ var inputSchema34, outputSchema29, TaskUpdateTool;
351758
352049
  var init_TaskUpdateTool = __esm(() => {
351759
352050
  init_v4();
351760
352051
  init_growthbook();
@@ -351765,7 +352056,7 @@ var init_TaskUpdateTool = __esm(() => {
351765
352056
  init_teammate();
351766
352057
  init_teammateMailbox();
351767
352058
  init_constants3();
351768
- inputSchema33 = lazySchema(() => {
352059
+ inputSchema34 = lazySchema(() => {
351769
352060
  const TaskUpdateStatusSchema = TaskStatusSchema2().or(exports_external.literal("deleted"));
351770
352061
  return exports_external.strictObject({
351771
352062
  taskId: exports_external.string().describe("The ID of the task to update"),
@@ -351779,7 +352070,7 @@ var init_TaskUpdateTool = __esm(() => {
351779
352070
  metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional().describe("Metadata keys to merge into the task. Set a key to null to delete it.")
351780
352071
  });
351781
352072
  });
351782
- outputSchema28 = lazySchema(() => exports_external.object({
352073
+ outputSchema29 = lazySchema(() => exports_external.object({
351783
352074
  success: exports_external.boolean(),
351784
352075
  taskId: exports_external.string(),
351785
352076
  updatedFields: exports_external.array(exports_external.string()),
@@ -351801,10 +352092,10 @@ var init_TaskUpdateTool = __esm(() => {
351801
352092
  return PROMPT7;
351802
352093
  },
351803
352094
  get inputSchema() {
351804
- return inputSchema33();
352095
+ return inputSchema34();
351805
352096
  },
351806
352097
  get outputSchema() {
351807
- return outputSchema28();
352098
+ return outputSchema29();
351808
352099
  },
351809
352100
  userFacingName() {
351810
352101
  return "TaskUpdate";
@@ -352060,14 +352351,14 @@ var init_prompt19 = __esm(() => {
352060
352351
  });
352061
352352
 
352062
352353
  // src/tools/TaskListTool/TaskListTool.ts
352063
- var inputSchema34, outputSchema29, TaskListTool;
352354
+ var inputSchema35, outputSchema30, TaskListTool;
352064
352355
  var init_TaskListTool = __esm(() => {
352065
352356
  init_v4();
352066
352357
  init_Tool();
352067
352358
  init_tasks();
352068
352359
  init_prompt19();
352069
- inputSchema34 = lazySchema(() => exports_external.strictObject({}));
352070
- outputSchema29 = lazySchema(() => exports_external.object({
352360
+ inputSchema35 = lazySchema(() => exports_external.strictObject({}));
352361
+ outputSchema30 = lazySchema(() => exports_external.object({
352071
352362
  tasks: exports_external.array(exports_external.object({
352072
352363
  id: exports_external.string(),
352073
352364
  subject: exports_external.string(),
@@ -352087,10 +352378,10 @@ var init_TaskListTool = __esm(() => {
352087
352378
  return getPrompt5();
352088
352379
  },
352089
352380
  get inputSchema() {
352090
- return inputSchema34();
352381
+ return inputSchema35();
352091
352382
  },
352092
352383
  get outputSchema() {
352093
- return outputSchema29();
352384
+ return outputSchema30();
352094
352385
  },
352095
352386
  userFacingName() {
352096
352387
  return "TaskList";
@@ -352305,7 +352596,7 @@ function generateUniqueTeamName(providedName) {
352305
352596
  }
352306
352597
  return generateWordSlug();
352307
352598
  }
352308
- var inputSchema35, TeamCreateTool;
352599
+ var inputSchema36, TeamCreateTool;
352309
352600
  var init_TeamCreateTool = __esm(() => {
352310
352601
  init_v4();
352311
352602
  init_state();
@@ -352320,7 +352611,7 @@ var init_TeamCreateTool = __esm(() => {
352320
352611
  init_teammateLayoutManager();
352321
352612
  init_tasks();
352322
352613
  init_words();
352323
- inputSchema35 = lazySchema(() => exports_external.strictObject({
352614
+ inputSchema36 = lazySchema(() => exports_external.strictObject({
352324
352615
  team_name: exports_external.string().describe("Name for the new team to create."),
352325
352616
  description: exports_external.string().optional().describe("Team description/purpose."),
352326
352617
  agent_type: exports_external.string().optional().describe('Type/role of the team lead (e.g., "researcher", "test-runner"). ' + "Used for team file and inter-agent coordination.")
@@ -352334,7 +352625,7 @@ var init_TeamCreateTool = __esm(() => {
352334
352625
  return "";
352335
352626
  },
352336
352627
  get inputSchema() {
352337
- return inputSchema35();
352628
+ return inputSchema36();
352338
352629
  },
352339
352630
  isEnabled() {
352340
352631
  return isAgentSwarmsEnabled();
@@ -352485,7 +352776,7 @@ var exports_TeamDeleteTool = {};
352485
352776
  __export(exports_TeamDeleteTool, {
352486
352777
  TeamDeleteTool: () => TeamDeleteTool
352487
352778
  });
352488
- var inputSchema36, TeamDeleteTool;
352779
+ var inputSchema37, TeamDeleteTool;
352489
352780
  var init_TeamDeleteTool = __esm(() => {
352490
352781
  init_v4();
352491
352782
  init_analytics();
@@ -352496,7 +352787,7 @@ var init_TeamDeleteTool = __esm(() => {
352496
352787
  init_teammateLayoutManager();
352497
352788
  init_tasks();
352498
352789
  init_UI23();
352499
- inputSchema36 = lazySchema(() => exports_external.strictObject({}));
352790
+ inputSchema37 = lazySchema(() => exports_external.strictObject({}));
352500
352791
  TeamDeleteTool = buildTool({
352501
352792
  name: TEAM_DELETE_TOOL_NAME,
352502
352793
  searchHint: "disband a swarm team and clean up",
@@ -352506,7 +352797,7 @@ var init_TeamDeleteTool = __esm(() => {
352506
352797
  return "";
352507
352798
  },
352508
352799
  get inputSchema() {
352509
- return inputSchema36();
352800
+ return inputSchema37();
352510
352801
  },
352511
352802
  isEnabled() {
352512
352803
  return isAgentSwarmsEnabled();
@@ -352964,7 +353255,7 @@ var init_systemPrompt = __esm(() => {
352964
353255
  });
352965
353256
 
352966
353257
  // src/tools/AgentTool/forkSubagent.ts
352967
- import { randomUUID as randomUUID18 } from "crypto";
353258
+ import { randomUUID as randomUUID19 } from "crypto";
352968
353259
  function isForkSubagentEnabled() {
352969
353260
  if (false) {}
352970
353261
  return false;
@@ -352982,7 +353273,7 @@ function isInForkChild(messages) {
352982
353273
  function buildForkedMessages(directive, assistantMessage) {
352983
353274
  const fullAssistantMessage = {
352984
353275
  ...assistantMessage,
352985
- uuid: randomUUID18(),
353276
+ uuid: randomUUID19(),
352986
353277
  message: {
352987
353278
  ...assistantMessage.message,
352988
353279
  content: [...assistantMessage.message.content]
@@ -353574,7 +353865,7 @@ async function handlePlanRejection(recipientName, requestId, feedback, context6)
353574
353865
  }
353575
353866
  };
353576
353867
  }
353577
- var StructuredMessage, inputSchema37, SendMessageTool;
353868
+ var StructuredMessage, inputSchema38, SendMessageTool;
353578
353869
  var init_SendMessageTool = __esm(() => {
353579
353870
  init_v4();
353580
353871
  init_state();
@@ -353614,7 +353905,7 @@ var init_SendMessageTool = __esm(() => {
353614
353905
  feedback: exports_external.string().optional()
353615
353906
  })
353616
353907
  ]));
353617
- inputSchema37 = lazySchema(() => exports_external.object({
353908
+ inputSchema38 = lazySchema(() => exports_external.object({
353618
353909
  to: exports_external.string().describe('Recipient: teammate name, or "*" for broadcast to all teammates'),
353619
353910
  summary: exports_external.string().optional().describe("A 5-10 word summary shown as a preview in the UI (required when message is a string)"),
353620
353911
  message: exports_external.union([
@@ -353630,7 +353921,7 @@ var init_SendMessageTool = __esm(() => {
353630
353921
  return "SendMessage";
353631
353922
  },
353632
353923
  get inputSchema() {
353633
- return inputSchema37();
353924
+ return inputSchema38();
353634
353925
  },
353635
353926
  shouldDefer: true,
353636
353927
  isEnabled() {
@@ -353892,6 +354183,7 @@ function getAllBaseTools() {
353892
354183
  ImageGenerationTool,
353893
354184
  TaskStopTool,
353894
354185
  AskUserQuestionTool,
354186
+ AutomationTool,
353895
354187
  SkillTool,
353896
354188
  EnterPlanModeTool,
353897
354189
  ...process.env.USER_TYPE === "ant" ? [ConfigTool] : [],
@@ -353979,6 +354271,7 @@ var init_tools2 = __esm(() => {
353979
354271
  init_WebFetchTool();
353980
354272
  init_TaskStopTool();
353981
354273
  init_BriefTool();
354274
+ init_AutomationTool();
353982
354275
  init_TaskOutputTool();
353983
354276
  init_WebSearchTool();
353984
354277
  init_ImageGenerationTool();
@@ -354017,6 +354310,188 @@ var init_tools2 = __esm(() => {
354017
354310
  TOOL_PRESETS = ["default"];
354018
354311
  });
354019
354312
 
354313
+ // src/tools/AgentTool/agentToolParams.ts
354314
+ function firstNonEmptyString(...values2) {
354315
+ for (const value of values2) {
354316
+ if (typeof value !== "string")
354317
+ continue;
354318
+ const trimmed = value.trim();
354319
+ if (trimmed && !SENTINEL_STRINGS.has(trimmed.toLowerCase())) {
354320
+ return trimmed;
354321
+ }
354322
+ }
354323
+ return;
354324
+ }
354325
+ function sanitizeOptionalArg(value) {
354326
+ if (value === undefined || value === null)
354327
+ return;
354328
+ if (typeof value === "number" && Number.isFinite(value)) {
354329
+ return String(value);
354330
+ }
354331
+ if (typeof value !== "string")
354332
+ return;
354333
+ const trimmed = value.trim();
354334
+ if (!trimmed || SENTINEL_STRINGS.has(trimmed.toLowerCase())) {
354335
+ return;
354336
+ }
354337
+ return trimmed;
354338
+ }
354339
+ function deriveAgentDescription(prompt) {
354340
+ const words = prompt.replace(/\s+/g, " ").trim().split(" ").filter(Boolean);
354341
+ const title = words.slice(0, 5).join(" ");
354342
+ if (!title)
354343
+ return "Sub-agent task";
354344
+ return title.length > 60 ? `${title.slice(0, 57)}…` : title;
354345
+ }
354346
+ function normalizeIsolation(value) {
354347
+ if (value === undefined || value === null || value === false) {
354348
+ return;
354349
+ }
354350
+ if (value === true)
354351
+ return "worktree";
354352
+ if (typeof value !== "string")
354353
+ return;
354354
+ const normalized = value.trim().toLowerCase();
354355
+ if (!normalized || SHARED_ISOLATION_STRINGS.has(normalized)) {
354356
+ return;
354357
+ }
354358
+ if (WORKTREE_ISOLATION_STRINGS.has(normalized))
354359
+ return "worktree";
354360
+ if (normalized === "remote")
354361
+ return "remote";
354362
+ return;
354363
+ }
354364
+ function normalizeEffortInput(value) {
354365
+ return parseEffortValue(sanitizeOptionalArg(value) ?? value);
354366
+ }
354367
+ function coerceBoolean(value) {
354368
+ if (typeof value === "boolean")
354369
+ return value;
354370
+ if (typeof value === "string") {
354371
+ const normalized = value.trim().toLowerCase();
354372
+ if (normalized === "true" || normalized === "1" || normalized === "yes") {
354373
+ return true;
354374
+ }
354375
+ if (normalized === "false" || normalized === "0" || normalized === "no") {
354376
+ return false;
354377
+ }
354378
+ }
354379
+ return;
354380
+ }
354381
+ function normalizeAgentToolInput(value) {
354382
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
354383
+ return value;
354384
+ }
354385
+ const input = value;
354386
+ const out = { ...input };
354387
+ const prompt = firstNonEmptyString(out.prompt, out.task, out.instruction, out.goal, out.query);
354388
+ if (prompt)
354389
+ out.prompt = prompt;
354390
+ const description = firstNonEmptyString(out.description, out.title, out.summary, typeof out.name === "string" && out.team_name == null ? out.name : undefined);
354391
+ if (description) {
354392
+ out.description = description;
354393
+ } else if (prompt) {
354394
+ out.description = deriveAgentDescription(prompt);
354395
+ }
354396
+ if (out.run_in_background == null && out.background != null) {
354397
+ const background = coerceBoolean(out.background);
354398
+ if (background !== undefined)
354399
+ out.run_in_background = background;
354400
+ }
354401
+ const runInBackground = coerceBoolean(out.run_in_background);
354402
+ if (runInBackground !== undefined)
354403
+ out.run_in_background = runInBackground;
354404
+ if ("isolation" in out) {
354405
+ const isolation = normalizeIsolation(out.isolation);
354406
+ if (isolation)
354407
+ out.isolation = isolation;
354408
+ else
354409
+ delete out.isolation;
354410
+ }
354411
+ if ("model" in out) {
354412
+ const model = sanitizeOptionalArg(out.model);
354413
+ if (!model || isInheritAgentModel(model))
354414
+ delete out.model;
354415
+ else
354416
+ out.model = model;
354417
+ }
354418
+ if ("effort" in out) {
354419
+ const effort = normalizeEffortInput(out.effort);
354420
+ if (effort === undefined)
354421
+ delete out.effort;
354422
+ else
354423
+ out.effort = typeof effort === "number" ? String(effort) : effort;
354424
+ }
354425
+ delete out.background;
354426
+ delete out.task;
354427
+ delete out.instruction;
354428
+ delete out.goal;
354429
+ delete out.query;
354430
+ delete out.title;
354431
+ delete out.summary;
354432
+ return out;
354433
+ }
354434
+ function listSubagentModelSlugs() {
354435
+ const slugs = new Set(["inherit"]);
354436
+ try {
354437
+ for (const option of getModelOptions()) {
354438
+ if (typeof option.value === "string" && option.value.trim()) {
354439
+ slugs.add(option.value.trim());
354440
+ }
354441
+ }
354442
+ } catch {}
354443
+ for (const alias of ["sonnet", "opus", "haiku"]) {
354444
+ slugs.add(alias);
354445
+ }
354446
+ return [...slugs];
354447
+ }
354448
+ function listSubagentEffortLevels(model) {
354449
+ if (model) {
354450
+ const supported = getSupportedEffortLevelsForModel(model);
354451
+ if (supported?.length)
354452
+ return [...supported];
354453
+ }
354454
+ return [...EFFORT_LEVELS];
354455
+ }
354456
+ function formatSubagentModelList(slugs) {
354457
+ if (slugs.length === 0)
354458
+ return "inherit, or any available model slug";
354459
+ const shown = slugs.slice(0, 24);
354460
+ const extra = slugs.length - shown.length;
354461
+ return extra > 0 ? `${shown.join(", ")}, and ${extra} more` : shown.join(", ");
354462
+ }
354463
+ var SENTINEL_STRINGS, SHARED_ISOLATION_STRINGS, WORKTREE_ISOLATION_STRINGS;
354464
+ var init_agentToolParams = __esm(() => {
354465
+ init_effort();
354466
+ init_agent();
354467
+ init_modelOptions();
354468
+ SENTINEL_STRINGS = new Set([
354469
+ "",
354470
+ "null",
354471
+ "none",
354472
+ "undefined",
354473
+ "n/a",
354474
+ "na"
354475
+ ]);
354476
+ SHARED_ISOLATION_STRINGS = new Set([
354477
+ "none",
354478
+ "null",
354479
+ "undefined",
354480
+ "false",
354481
+ "shared",
354482
+ "default",
354483
+ "off",
354484
+ "disabled"
354485
+ ]);
354486
+ WORKTREE_ISOLATION_STRINGS = new Set([
354487
+ "worktree",
354488
+ "work-tree",
354489
+ "work_tree",
354490
+ "isolated",
354491
+ "isolate"
354492
+ ]);
354493
+ });
354494
+
354020
354495
  // src/utils/swarm/It2SetupPrompt.tsx
354021
354496
  function It2SetupPrompt(t0) {
354022
354497
  const $2 = import_react_compiler_runtime121.c(44);
@@ -355222,6 +355697,44 @@ Forks are cheap because they share your prompt cache. Don't set \`model\` on a f
355222
355697
 
355223
355698
  **Writing a fork prompt.** Since the fork inherits your context, the prompt is a *directive* — what to do, not what the situation is. Be specific about scope: what's in, what's out, what another agent is handling. Don't re-explain background.
355224
355699
  ` : "";
355700
+ const availableModels = formatSubagentModelList(listSubagentModelSlugs());
355701
+ const availableEfforts = listSubagentEffortLevels().join(", ");
355702
+ const requiredCallShapeSection = `
355703
+
355704
+ ## Required call shape
355705
+
355706
+ Every ${AGENT_TOOL_NAME} call MUST include both:
355707
+ - \`description\`: a short 3-5 word title shown in the UI (for example "Analyze video style")
355708
+ - \`prompt\`: the full task for the subagent
355709
+
355710
+ A call that omits \`description\` or \`prompt\` is rejected. Do not start the subagent and "fill those in later".
355711
+
355712
+ Optional but supported on every spawn:
355713
+ - \`subagent_type\`: one of the types listed above. If omitted, ${forkEnabled ? "a fork of yourself is created" : "the general-purpose agent is used"}.
355714
+ - \`model\`: any available model slug, a family alias (\`sonnet\`, \`opus\`, \`haiku\`), or \`inherit\`. Omit to inherit the parent model. Available models right now: ${availableModels}.
355715
+ - \`effort\`: any effort the chosen model supports (${availableEfforts}, plus display aliases like Extra High). Omit to inherit the parent effort.
355716
+ - \`isolation\`: \`"none"\` (default, shared workspace) or \`"worktree"\` (isolated git worktree). Never pass any other value. \`"none"\` is valid and means "do not isolate".
355717
+ - \`run_in_background\`: \`true\` to return immediately and get a completion notification later.
355718
+
355719
+ Example of a correct call:
355720
+
355721
+ ${AGENT_TOOL_NAME}({
355722
+ description: "Analyze video style",
355723
+ prompt: "Inspect the extracted frames and write a concise style report. Include palette, motion, typography, and camera language.",
355724
+ subagent_type: "general-purpose",
355725
+ isolation: "none"
355726
+ })
355727
+
355728
+ To pin a different model or effort:
355729
+
355730
+ ${AGENT_TOOL_NAME}({
355731
+ description: "Deep code review",
355732
+ prompt: "Review src/auth for token handling bugs. Report file paths and line numbers. Do not edit files.",
355733
+ subagent_type: "general-purpose",
355734
+ model: "inherit",
355735
+ effort: "high"
355736
+ })
355737
+ `;
355225
355738
  const writingThePromptSection = `
355226
355739
 
355227
355740
  ## Writing the prompt
@@ -355320,7 +355833,9 @@ The ${AGENT_TOOL_NAME} tool launches specialized agents (subprocesses) that auto
355320
355833
 
355321
355834
  ${agentListSection}
355322
355835
 
355323
- ${forkEnabled ? `When using the ${AGENT_TOOL_NAME} tool, specify a subagent_type to use a specialized agent, or omit it to fork yourself — a fork inherits your full conversation context.` : `When using the ${AGENT_TOOL_NAME} tool, specify a subagent_type parameter to select which agent type to use. If omitted, the general-purpose agent is used.`}`;
355836
+ ${forkEnabled ? `When using the ${AGENT_TOOL_NAME} tool, specify a subagent_type to use a specialized agent, or omit it to fork yourself — a fork inherits your full conversation context.` : `When using the ${AGENT_TOOL_NAME} tool, specify a subagent_type parameter to select which agent type to use. If omitted, the general-purpose agent is used.`}
355837
+
355838
+ Always pass both \`description\` (3-5 word title) and \`prompt\` (full task). You may set \`model\` to any available model slug and \`effort\` to any effort that model supports; omit them to inherit the parent. \`isolation\` accepts only \`"none"\` (default, shared workspace) or \`"worktree"\`.`;
355324
355839
  if (isCoordinator) {
355325
355840
  return shared2;
355326
355841
  }
@@ -355349,10 +355864,11 @@ Usage notes:
355349
355864
  - Clearly tell the agent whether you expect it to write code or just to do research (search, file reads, web fetches, etc.)${forkEnabled ? "" : ", since it is not aware of the user's intent"}
355350
355865
  - If the agent description mentions that it should be used proactively, then you should try your best to use it without the user having to ask for it first. Use your judgement.
355351
355866
  - If the user specifies that they want you to run agents "in parallel", you MUST send a single message with multiple ${AGENT_TOOL_NAME} tool use content blocks. For example, if you need to launch both a build-validator agent and a test-runner agent in parallel, send a single message with both tool calls.
355352
- - You can optionally set \`isolation: "worktree"\` to run the agent in a temporary git worktree, giving it an isolated copy of the repository. The worktree is automatically cleaned up if the agent makes no changes; if changes are made, the worktree path and branch are returned in the result.${process.env.USER_TYPE === "ant" ? `
355867
+ - You can optionally set \`model\` to any available model slug listed above (or \`inherit\`) and \`effort\` to any effort that model supports. Omit both to inherit the parent conversation's model and effort.
355868
+ - You can optionally set \`isolation: "none"\` (default, shared workspace) or \`isolation: "worktree"\` to run the agent in a temporary git worktree, giving it an isolated copy of the repository. The worktree is automatically cleaned up if the agent makes no changes; if changes are made, the worktree path and branch are returned in the result. Do not pass any isolation value other than \`"none"\` or \`"worktree"\`.${process.env.USER_TYPE === "ant" ? `
355353
355869
  - You can set \`isolation: "remote"\` to run the agent in a remote CCR environment. This is always a background task; you'll be notified when it completes. Use for long-running tasks that need a fresh sandbox.` : ""}${isInProcessTeammate() ? `
355354
355870
  - The run_in_background, name, team_name, and mode parameters are not available in this context. Only synchronous subagents are supported.` : isTeammate() ? `
355355
- - The name, team_name, and mode parameters are not available in this context — teammates cannot spawn other teammates. Omit them to spawn a subagent.` : ""}${whenToForkSection}${writingThePromptSection}
355871
+ - The name, team_name, and mode parameters are not available in this context — teammates cannot spawn other teammates. Omit them to spawn a subagent.` : ""}${whenToForkSection}${requiredCallShapeSection}${writingThePromptSection}
355356
355872
 
355357
355873
  ${forkEnabled ? forkExamples : currentExamples}`;
355358
355874
  }
@@ -355366,6 +355882,7 @@ var init_prompt20 = __esm(() => {
355366
355882
  init_prompt2();
355367
355883
  init_prompt3();
355368
355884
  init_constants3();
355885
+ init_agentToolParams();
355369
355886
  init_forkSubagent();
355370
355887
  });
355371
355888
 
@@ -355381,7 +355898,7 @@ function resolveTeamName(input, appState) {
355381
355898
  return;
355382
355899
  return input.team_name || appState.teamContext?.teamName;
355383
355900
  }
355384
- var jsx_runtime151, proactiveModule = null, PROGRESS_THRESHOLD_MS2 = 2000, isBackgroundTasksDisabled2, baseInputSchema, fullInputSchema2, inputSchema8, outputSchema30, AgentTool;
355901
+ var jsx_runtime151, proactiveModule = null, PROGRESS_THRESHOLD_MS2 = 2000, isBackgroundTasksDisabled2, baseInputSchema, fullInputSchema2, inputSchema8, outputSchema31, AgentTool;
355385
355902
  var init_AgentTool = __esm(() => {
355386
355903
  init_Tool();
355387
355904
  init_promptCategory();
@@ -355405,6 +355922,8 @@ var init_AgentTool = __esm(() => {
355405
355922
  init_errors();
355406
355923
  init_messages3();
355407
355924
  init_agent();
355925
+ init_modelAllowlist();
355926
+ init_agentToolParams();
355408
355927
  init_PermissionMode();
355409
355928
  init_permissions2();
355410
355929
  init_sdkEventQueue();
@@ -355432,10 +355951,11 @@ var init_AgentTool = __esm(() => {
355432
355951
  jsx_runtime151 = __toESM(require_jsx_runtime(), 1);
355433
355952
  isBackgroundTasksDisabled2 = isEnvTruthy(process.env.MAXIMO_SYNTAX_DISABLE_BACKGROUND_TASKS);
355434
355953
  baseInputSchema = lazySchema(() => exports_external.object({
355435
- description: exports_external.string().describe("A short (3-5 word) description of the task"),
355436
- prompt: exports_external.string().describe("The task for the agent to perform"),
355437
- subagent_type: exports_external.string().optional().describe("The type of specialized agent to use for this task"),
355438
- model: exports_external.enum(["sonnet", "opus", "haiku"]).optional().describe("Optional model override for this agent. Takes precedence over the agent definition's model frontmatter. If omitted, uses the agent definition's model, or inherits from the parent."),
355954
+ description: exports_external.string().describe("A short (3-5 word) title for the task. Required. Shown in the UI as the subagent name."),
355955
+ prompt: exports_external.string().describe("The full task for the agent to perform. Required. The subagent starts with zero conversation context, so include everything it needs."),
355956
+ subagent_type: exports_external.string().optional().describe("The type of specialized agent to use for this task. Built-in types include general-purpose, Explore, and Plan when enabled. If omitted, the general-purpose agent is used (or a fork, when forking is enabled)."),
355957
+ model: exports_external.string().optional().describe(`Optional model slug for this subagent. Pass any available model id from the current provider catalog, a family alias (sonnet, opus, haiku), or "inherit". If omitted, uses the agent definition's model or inherits the parent. Only set this when you intend a different model than the parent.`),
355958
+ effort: exports_external.string().optional().describe("Optional reasoning effort for this subagent. Pass any effort the chosen model supports (minimal, low, medium, high, xhigh, max, ultra — plus Extra High / extra_high aliases). If omitted, inherits the parent effort or the agent definition's effort."),
355439
355959
  run_in_background: exports_external.boolean().optional().describe("Set to true to run this agent in the background. You will be notified when it completes.")
355440
355960
  }));
355441
355961
  fullInputSchema2 = lazySchema(() => {
@@ -355445,7 +355965,7 @@ var init_AgentTool = __esm(() => {
355445
355965
  mode: permissionModeSchema().optional().describe('Permission mode for spawned teammate (e.g., "plan" to require plan approval).')
355446
355966
  });
355447
355967
  return baseInputSchema().merge(multiAgentInputSchema).extend({
355448
- isolation: exports_external.enum(["worktree"]).optional().describe('Isolation mode. "worktree" creates a temporary git worktree so the agent works on an isolated copy of the repo.'),
355968
+ isolation: exports_external.enum(["none", "worktree"]).optional().describe('Isolation mode. "none" (default) shares the parent workspace. "worktree" creates a temporary git worktree so the agent works on an isolated copy of the repo. Do not pass any other value.'),
355449
355969
  cwd: exports_external.string().optional().describe('Absolute path to run the agent in. Overrides the working directory for all filesystem and shell operations within this agent. Mutually exclusive with isolation: "worktree".')
355450
355970
  });
355451
355971
  });
@@ -355453,11 +355973,12 @@ var init_AgentTool = __esm(() => {
355453
355973
  const schema = fullInputSchema2().omit({
355454
355974
  cwd: true
355455
355975
  });
355456
- return isBackgroundTasksDisabled2 || isForkSubagentEnabled() ? schema.omit({
355976
+ const gated = isBackgroundTasksDisabled2 || isForkSubagentEnabled() ? schema.omit({
355457
355977
  run_in_background: true
355458
355978
  }) : schema;
355979
+ return exports_external.preprocess(normalizeAgentToolInput, gated);
355459
355980
  });
355460
- outputSchema30 = lazySchema(() => {
355981
+ outputSchema31 = lazySchema(() => {
355461
355982
  const syncOutputSchema = agentToolResultSchema().extend({
355462
355983
  status: exports_external.literal("completed"),
355463
355984
  prompt: exports_external.string()
@@ -355506,13 +356027,14 @@ var init_AgentTool = __esm(() => {
355506
356027
  return inputSchema8();
355507
356028
  },
355508
356029
  get outputSchema() {
355509
- return outputSchema30();
356030
+ return outputSchema31();
355510
356031
  },
355511
356032
  async call({
355512
356033
  prompt,
355513
356034
  subagent_type,
355514
356035
  description,
355515
356036
  model: modelParam,
356037
+ effort: effortParam,
355516
356038
  run_in_background,
355517
356039
  name,
355518
356040
  team_name,
@@ -355522,6 +356044,8 @@ var init_AgentTool = __esm(() => {
355522
356044
  }, toolUseContext, canUseTool, assistantMessage, onProgress) {
355523
356045
  const startTime2 = Date.now();
355524
356046
  const model = isCoordinatorMode() ? undefined : modelParam;
356047
+ const requestedEffort = isCoordinatorMode() ? undefined : normalizeEffortInput(effortParam);
356048
+ const requestedIsolation = isolation === "none" ? undefined : isolation;
355525
356049
  const appState = toolUseContext.getAppState();
355526
356050
  const permissionMode = appState.toolPermissionContext.mode;
355527
356051
  const rootSetAppState = toolUseContext.setAppStateForTasks ?? toolUseContext.setAppState;
@@ -355628,6 +356152,9 @@ var init_AgentTool = __esm(() => {
355628
356152
  setAgentColor(selectedAgent.agentType, selectedAgent.color);
355629
356153
  }
355630
356154
  const resolvedAgentModel = getAgentModel(selectedAgent.model, toolUseContext.options.mainLoopModel, isForkPath ? undefined : model, permissionMode);
356155
+ if (model && !isModelAllowed(resolvedAgentModel)) {
356156
+ throw new Error(`Model '${model}' is not available. Available models: ${formatSubagentModelList(listSubagentModelSlugs())}.`);
356157
+ }
355631
356158
  logEvent("tengu_agent_tool_selected", {
355632
356159
  agent_type: selectedAgent.agentType,
355633
356160
  model: resolvedAgentModel,
@@ -355638,7 +356165,7 @@ var init_AgentTool = __esm(() => {
355638
356165
  is_async: (run_in_background === true || selectedAgent.background === true) && !isBackgroundTasksDisabled2,
355639
356166
  is_fork: isForkPath
355640
356167
  });
355641
- const effectiveIsolation = isolation ?? selectedAgent.isolation;
356168
+ const effectiveIsolation = requestedIsolation ?? selectedAgent.isolation;
355642
356169
  if (false) {}
355643
356170
  let enhancedSystemPrompt;
355644
356171
  let forkParentSystemPrompt;
@@ -355727,7 +356254,8 @@ var init_AgentTool = __esm(() => {
355727
356254
  useExactTools: true
355728
356255
  },
355729
356256
  worktreePath: worktreeInfo?.worktreePath,
355730
- description
356257
+ description,
356258
+ effort: requestedEffort
355731
356259
  };
355732
356260
  const cwdOverridePath = cwd2 ?? worktreeInfo?.worktreePath;
355733
356261
  const wrapWithCwd = (fn) => cwdOverridePath ? runWithCwdOverride(cwdOverridePath, fn) : fn();
@@ -359075,7 +359603,7 @@ async function* runShellCommand({
359075
359603
  }
359076
359604
  }
359077
359605
  var jsx_runtime152, EOL4 = `
359078
- `, PROGRESS_THRESHOLD_MS3 = 2000, ASSISTANT_BLOCKING_BUDGET_MS2 = 15000, BASH_SEARCH_COMMANDS, BASH_READ_COMMANDS, BASH_LIST_COMMANDS, BASH_SEMANTIC_NEUTRAL_COMMANDS, BASH_SILENT_COMMANDS, DISALLOWED_AUTO_BACKGROUND_COMMANDS2, isBackgroundTasksDisabled3, fullInputSchema3, inputSchema38, COMMON_BACKGROUND_COMMANDS2, outputSchema31, BashTool;
359606
+ `, PROGRESS_THRESHOLD_MS3 = 2000, ASSISTANT_BLOCKING_BUDGET_MS2 = 15000, BASH_SEARCH_COMMANDS, BASH_READ_COMMANDS, BASH_LIST_COMMANDS, BASH_SEMANTIC_NEUTRAL_COMMANDS, BASH_SILENT_COMMANDS, DISALLOWED_AUTO_BACKGROUND_COMMANDS2, isBackgroundTasksDisabled3, fullInputSchema3, inputSchema39, COMMON_BACKGROUND_COMMANDS2, outputSchema32, BashTool;
359079
359607
  var init_BashTool = __esm(() => {
359080
359608
  init_v4();
359081
359609
  init_state();
@@ -359192,7 +359720,7 @@ For commands that are harder to parse at a glance (piped commands, obscure flags
359192
359720
  newContent: exports_external.string()
359193
359721
  }).optional().describe("Internal: pre-computed sed edit result from preview")
359194
359722
  }));
359195
- inputSchema38 = lazySchema(() => isBackgroundTasksDisabled3 ? fullInputSchema3().omit({
359723
+ inputSchema39 = lazySchema(() => isBackgroundTasksDisabled3 ? fullInputSchema3().omit({
359196
359724
  run_in_background: true,
359197
359725
  _simulatedSedEdit: true
359198
359726
  }) : fullInputSchema3().omit({
@@ -359222,7 +359750,7 @@ For commands that are harder to parse at a glance (piped commands, obscure flags
359222
359750
  "watch",
359223
359751
  "dev"
359224
359752
  ];
359225
- outputSchema31 = lazySchema(() => exports_external.object({
359753
+ outputSchema32 = lazySchema(() => exports_external.object({
359226
359754
  stdout: exports_external.string().describe("The standard output of the command"),
359227
359755
  stderr: exports_external.string().describe("The standard error output of the command"),
359228
359756
  rawOutputPath: exports_external.string().optional().describe("Path to raw output file for large MCP tool outputs"),
@@ -359277,7 +359805,7 @@ For commands that are harder to parse at a glance (piped commands, obscure flags
359277
359805
  };
359278
359806
  },
359279
359807
  isSearchOrReadCommand(input) {
359280
- const parsed = inputSchema38().safeParse(input);
359808
+ const parsed = inputSchema39().safeParse(input);
359281
359809
  if (!parsed.success)
359282
359810
  return {
359283
359811
  isSearch: false,
@@ -359287,10 +359815,10 @@ For commands that are harder to parse at a glance (piped commands, obscure flags
359287
359815
  return isSearchOrReadBashCommand(parsed.data.command);
359288
359816
  },
359289
359817
  get inputSchema() {
359290
- return inputSchema38();
359818
+ return inputSchema39();
359291
359819
  },
359292
359820
  get outputSchema() {
359293
- return outputSchema31();
359821
+ return outputSchema32();
359294
359822
  },
359295
359823
  userFacingName(input) {
359296
359824
  if (!input) {
@@ -363904,13 +364432,13 @@ var init_config6 = __esm(() => {
363904
364432
  });
363905
364433
 
363906
364434
  // src/query/deps.ts
363907
- import { randomUUID as randomUUID19 } from "crypto";
364435
+ import { randomUUID as randomUUID20 } from "crypto";
363908
364436
  function productionDeps() {
363909
364437
  return {
363910
364438
  callModel: queryModelWithStreaming,
363911
364439
  microcompact: microcompactMessages,
363912
364440
  autocompact: autoCompactIfNeeded,
363913
- uuid: randomUUID19
364441
+ uuid: randomUUID20
363914
364442
  };
363915
364443
  }
363916
364444
  var init_deps = __esm(() => {
@@ -363939,7 +364467,7 @@ var init_types10 = __esm(() => {
363939
364467
  });
363940
364468
 
363941
364469
  // src/services/goal/goalTracker.ts
363942
- import { randomUUID as randomUUID20 } from "crypto";
364470
+ import { randomUUID as randomUUID21 } from "crypto";
363943
364471
  import { mkdirSync as mkdirSync5 } from "fs";
363944
364472
  import { tmpdir as tmpdir6 } from "os";
363945
364473
  import { join as join87 } from "path";
@@ -364040,7 +364568,7 @@ function makeScratchDir(goalId) {
364040
364568
  return dir;
364041
364569
  }
364042
364570
  function createGoal(objective, options2) {
364043
- const goalId = randomUUID20().slice(0, 8);
364571
+ const goalId = randomUUID21().slice(0, 8);
364044
364572
  const scratchDir = makeScratchDir(goalId);
364045
364573
  current = {
364046
364574
  goalId,
@@ -366177,7 +366705,7 @@ function getAnthropicEnvMetadata() {
366177
366705
  function getBuildAgeMinutes() {
366178
366706
  if (false)
366179
366707
  ;
366180
- const buildTime = new Date("2026-08-07T23:54:01.463Z").getTime();
366708
+ const buildTime = new Date("2026-08-15T17:26:52.338Z").getTime();
366181
366709
  if (isNaN(buildTime))
366182
366710
  return;
366183
366711
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -366628,7 +367156,7 @@ var init_denialTracking = __esm(() => {
366628
367156
  });
366629
367157
 
366630
367158
  // src/utils/forkedAgent.ts
366631
- import { randomUUID as randomUUID21 } from "crypto";
367159
+ import { randomUUID as randomUUID22 } from "crypto";
366632
367160
  function saveCacheSafeParams(params) {
366633
367161
  lastCacheSafeParams = params;
366634
367162
  }
@@ -366737,7 +367265,7 @@ function createSubagentContext(parentContext, overrides) {
366737
367265
  agentId: overrides?.agentId ?? createAgentId(),
366738
367266
  agentType: overrides?.agentType,
366739
367267
  queryTracking: {
366740
- chainId: randomUUID21(),
367268
+ chainId: randomUUID22(),
366741
367269
  depth: (parentContext.queryTracking?.depth ?? -1) + 1
366742
367270
  },
366743
367271
  fileReadingLimits: parentContext.fileReadingLimits,
@@ -369723,8 +370251,8 @@ async function calculateDeferredToolDescriptionChars(tools, getToolPermissionCon
369723
370251
  tools,
369724
370252
  agents
369725
370253
  });
369726
- const inputSchema39 = tool.inputJSONSchema ? jsonStringify(tool.inputJSONSchema) : tool.inputSchema ? jsonStringify(zodToJsonSchema3(tool.inputSchema)) : "";
369727
- return tool.name.length + description.length + inputSchema39.length;
370254
+ const inputSchema40 = tool.inputJSONSchema ? jsonStringify(tool.inputJSONSchema) : tool.inputSchema ? jsonStringify(zodToJsonSchema3(tool.inputSchema)) : "";
370255
+ return tool.name.length + description.length + inputSchema40.length;
369728
370256
  }));
369729
370257
  return sizes.reduce((total, size) => total + size, 0);
369730
370258
  }
@@ -369915,7 +370443,7 @@ var init_toolSearch = __esm(() => {
369915
370443
  });
369916
370444
 
369917
370445
  // src/services/vcr.ts
369918
- import { createHash as createHash20, randomUUID as randomUUID22 } from "crypto";
370446
+ import { createHash as createHash20, randomUUID as randomUUID23 } from "crypto";
369919
370447
  import { mkdir as mkdir23, readFile as readFile29, writeFile as writeFile24 } from "fs/promises";
369920
370448
  import { dirname as dirname36, join as join90 } from "path";
369921
370449
  function shouldUseVCR() {
@@ -369968,7 +370496,7 @@ async function withVCR(messages, f) {
369968
370496
  try {
369969
370497
  const cached3 = jsonParse(await readFile29(filename, { encoding: "utf8" }));
369970
370498
  cached3.output.forEach(addCachedCostToTotalSessionCost);
369971
- return cached3.output.map((message, index) => mapMessage(message, hydrateValue, index, randomUUID22()));
370499
+ return cached3.output.map((message, index) => mapMessage(message, hydrateValue, index, randomUUID23()));
369972
370500
  } catch (e) {
369973
370501
  const code = getErrnoCode(e);
369974
370502
  if (code !== "ENOENT") {
@@ -370429,7 +370957,7 @@ var init_tokenEstimation = __esm(() => {
370429
370957
  });
370430
370958
 
370431
370959
  // src/utils/pdf.ts
370432
- import { randomUUID as randomUUID23 } from "crypto";
370960
+ import { randomUUID as randomUUID24 } from "crypto";
370433
370961
  import { mkdir as mkdir24, readdir as readdir16, readFile as readFile30 } from "fs/promises";
370434
370962
  import { join as join91 } from "path";
370435
370963
  async function readPDF(filePath) {
@@ -370540,7 +371068,7 @@ async function extractPDFPages(filePath, options2) {
370540
371068
  }
370541
371069
  };
370542
371070
  }
370543
- const uuid3 = randomUUID23();
371071
+ const uuid3 = randomUUID24();
370544
371072
  const outputDir = join91(getToolResultsDir(), `pdf-${uuid3}`);
370545
371073
  await mkdir24(outputDir, { recursive: true });
370546
371074
  const prefix = join91(outputDir, "page");
@@ -371232,7 +371760,7 @@ async function readImageWithTokenBudget(filePath, maxTokens = getDefaultFileRead
371232
371760
  }
371233
371761
  return result;
371234
371762
  }
371235
- var BLOCKED_DEVICE_PATHS, THIN_SPACE, fileReadListeners, MaxFileReadTokenExceededError, IMAGE_EXTENSIONS, inputSchema39, outputSchema32, FileReadTool, CYBER_RISK_MITIGATION_REMINDER = `
371763
+ var BLOCKED_DEVICE_PATHS, THIN_SPACE, fileReadListeners, MaxFileReadTokenExceededError, IMAGE_EXTENSIONS, inputSchema40, outputSchema33, FileReadTool, CYBER_RISK_MITIGATION_REMINDER = `
371236
371764
 
371237
371765
  <system-reminder>
371238
371766
  Whenever you read a file, you should consider whether it would be considered malware. You CAN and SHOULD provide analysis of malware, what it is doing. But you MUST refuse to improve or augment the code. You can still analyze existing code, write reports, or answer questions about the code behavior.
@@ -371300,13 +371828,13 @@ var init_FileReadTool = __esm(() => {
371300
371828
  }
371301
371829
  };
371302
371830
  IMAGE_EXTENSIONS = new Set(["png", "jpg", "jpeg", "gif", "webp"]);
371303
- inputSchema39 = lazySchema(() => exports_external.strictObject({
371831
+ inputSchema40 = lazySchema(() => exports_external.strictObject({
371304
371832
  file_path: exports_external.string().describe("The absolute path to the file to read"),
371305
371833
  offset: semanticNumber(exports_external.number().int().nonnegative().optional()).describe("The line number to start reading from. Only provide if the file is too large to read at once"),
371306
371834
  limit: semanticNumber(exports_external.number().int().positive().optional()).describe("The number of lines to read. Only provide if the file is too large to read at once."),
371307
371835
  pages: exports_external.string().optional().describe(`Page range for PDF files (e.g., "1-5", "3", "10-20"). Only applicable to PDF files. Maximum ${PDF_MAX_PAGES_PER_READ} pages per request.`)
371308
371836
  }));
371309
- outputSchema32 = lazySchema(() => {
371837
+ outputSchema33 = lazySchema(() => {
371310
371838
  const imageMediaTypes = exports_external.enum([
371311
371839
  "image/jpeg",
371312
371840
  "image/png",
@@ -371385,10 +371913,10 @@ var init_FileReadTool = __esm(() => {
371385
371913
  return renderPromptTemplate(pickLineFormatInstruction(), maxSizeInstruction, offsetInstruction);
371386
371914
  },
371387
371915
  get inputSchema() {
371388
- return inputSchema39();
371916
+ return inputSchema40();
371389
371917
  },
371390
371918
  get outputSchema() {
371391
- return outputSchema32();
371919
+ return outputSchema33();
371392
371920
  },
371393
371921
  userFacingName: userFacingName7,
371394
371922
  getToolUseSummary: getToolUseSummary8,
@@ -372118,7 +372646,7 @@ var init_findRelevantMemories = __esm(() => {
372118
372646
  // src/utils/attachments.ts
372119
372647
  import { readdir as readdir18, stat as stat32 } from "fs/promises";
372120
372648
  import { dirname as dirname37, parse as parse12, relative as relative19, resolve as resolve31 } from "path";
372121
- import { randomUUID as randomUUID24 } from "crypto";
372649
+ import { randomUUID as randomUUID25 } from "crypto";
372122
372650
  async function getAttachments(input, toolUseContext, ideSelection, queuedCommands, messages, querySource, options2) {
372123
372651
  if (isEnvTruthy(process.env.MAXIMO_SYNTAX_DISABLE_ATTACHMENTS) || isEnvTruthy(process.env.MAXIMO_SYNTAX_SIMPLE)) {
372124
372652
  return getQueuedCommandAttachments(queuedCommands);
@@ -373338,7 +373866,7 @@ function createAttachmentMessage(attachment) {
373338
373866
  return {
373339
373867
  attachment,
373340
373868
  type: "attachment",
373341
- uuid: randomUUID24(),
373869
+ uuid: randomUUID25(),
373342
373870
  timestamp: new Date().toISOString()
373343
373871
  };
373344
373872
  }
@@ -378929,7 +379457,7 @@ ${EXPLANATORY_FEATURE_PROMPT}`
378929
379457
  });
378930
379458
 
378931
379459
  // src/utils/messages.ts
378932
- import { randomUUID as randomUUID25 } from "crypto";
379460
+ import { randomUUID as randomUUID26 } from "crypto";
378933
379461
  function getTeammateMailbox() {
378934
379462
  return init_teammateMailbox(), __toCommonJS(exports_teammateMailbox);
378935
379463
  }
@@ -379004,10 +379532,10 @@ function baseCreateAssistantMessage({
379004
379532
  }) {
379005
379533
  return {
379006
379534
  type: "assistant",
379007
- uuid: randomUUID25(),
379535
+ uuid: randomUUID26(),
379008
379536
  timestamp: new Date().toISOString(),
379009
379537
  message: {
379010
- id: randomUUID25(),
379538
+ id: randomUUID26(),
379011
379539
  container: null,
379012
379540
  model: SYNTHETIC_MODEL,
379013
379541
  role: "assistant",
@@ -379088,7 +379616,7 @@ function createUserMessage({
379088
379616
  isVirtual,
379089
379617
  isCompactSummary,
379090
379618
  summarizeMetadata,
379091
- uuid: uuid3 || randomUUID25(),
379619
+ uuid: uuid3 || randomUUID26(),
379092
379620
  timestamp: timestamp ?? new Date().toISOString(),
379093
379621
  toolUseResult,
379094
379622
  mcpMeta,
@@ -379157,7 +379685,7 @@ function createProgressMessage({
379157
379685
  data,
379158
379686
  toolUseID,
379159
379687
  parentToolUseID,
379160
- uuid: randomUUID25(),
379688
+ uuid: randomUUID26(),
379161
379689
  timestamp: new Date().toISOString()
379162
379690
  };
379163
379691
  }
@@ -381464,7 +381992,7 @@ function createSystemMessage(content, level, toolUseID, preventContinuation) {
381464
381992
  content,
381465
381993
  isMeta: false,
381466
381994
  timestamp: new Date().toISOString(),
381467
- uuid: randomUUID25(),
381995
+ uuid: randomUUID26(),
381468
381996
  toolUseID,
381469
381997
  level,
381470
381998
  ...preventContinuation && { preventContinuation }
@@ -381479,7 +382007,7 @@ function createPermissionRetryMessage(commands) {
381479
382007
  level: "info",
381480
382008
  isMeta: false,
381481
382009
  timestamp: new Date().toISOString(),
381482
- uuid: randomUUID25()
382010
+ uuid: randomUUID26()
381483
382011
  };
381484
382012
  }
381485
382013
  function createStopHookSummaryMessage(hookCount, hookInfos, hookErrors, preventedContinuation, stopReason, hasOutput, level, toolUseID, hookLabel, totalDurationMs) {
@@ -381494,7 +382022,7 @@ function createStopHookSummaryMessage(hookCount, hookInfos, hookErrors, prevente
381494
382022
  hasOutput,
381495
382023
  level,
381496
382024
  timestamp: new Date().toISOString(),
381497
- uuid: randomUUID25(),
382025
+ uuid: randomUUID26(),
381498
382026
  toolUseID,
381499
382027
  hookLabel,
381500
382028
  totalDurationMs
@@ -381510,7 +382038,7 @@ function createTurnDurationMessage(durationMs, budget, messageCount) {
381510
382038
  budgetNudges: budget?.nudges,
381511
382039
  messageCount,
381512
382040
  timestamp: new Date().toISOString(),
381513
- uuid: randomUUID25(),
382041
+ uuid: randomUUID26(),
381514
382042
  isMeta: false
381515
382043
  };
381516
382044
  }
@@ -381520,7 +382048,7 @@ function createMemorySavedMessage(writtenPaths) {
381520
382048
  subtype: "memory_saved",
381521
382049
  writtenPaths,
381522
382050
  timestamp: new Date().toISOString(),
381523
- uuid: randomUUID25(),
382051
+ uuid: randomUUID26(),
381524
382052
  isMeta: false
381525
382053
  };
381526
382054
  }
@@ -381529,7 +382057,7 @@ function createAgentsKilledMessage() {
381529
382057
  type: "system",
381530
382058
  subtype: "agents_killed",
381531
382059
  timestamp: new Date().toISOString(),
381532
- uuid: randomUUID25(),
382060
+ uuid: randomUUID26(),
381533
382061
  isMeta: false
381534
382062
  };
381535
382063
  }
@@ -381540,7 +382068,7 @@ function createCommandInputMessage(content) {
381540
382068
  content,
381541
382069
  level: "info",
381542
382070
  timestamp: new Date().toISOString(),
381543
- uuid: randomUUID25(),
382071
+ uuid: randomUUID26(),
381544
382072
  isMeta: false
381545
382073
  };
381546
382074
  }
@@ -381551,7 +382079,7 @@ function createCompactBoundaryMessage(trigger, preTokens, lastPreCompactMessageU
381551
382079
  content: `Conversation compacted`,
381552
382080
  isMeta: false,
381553
382081
  timestamp: new Date().toISOString(),
381554
- uuid: randomUUID25(),
382082
+ uuid: randomUUID26(),
381555
382083
  level: "info",
381556
382084
  compactMetadata: {
381557
382085
  trigger,
@@ -381575,7 +382103,7 @@ function createSystemAPIErrorMessage(error42, retryInMs, retryAttempt, maxRetrie
381575
382103
  retryAttempt,
381576
382104
  maxRetries,
381577
382105
  timestamp: new Date().toISOString(),
381578
- uuid: randomUUID25()
382106
+ uuid: randomUUID26()
381579
382107
  };
381580
382108
  }
381581
382109
  function isCompactBoundaryMessage(message) {
@@ -381844,7 +382372,7 @@ function createToolUseSummaryMessage(summary, precedingToolUseIds) {
381844
382372
  type: "tool_use_summary",
381845
382373
  summary,
381846
382374
  precedingToolUseIds,
381847
- uuid: randomUUID25(),
382375
+ uuid: randomUUID26(),
381848
382376
  timestamp: new Date().toISOString()
381849
382377
  };
381850
382378
  }
@@ -392214,7 +392742,7 @@ var exports_conversation = {};
392214
392742
  __export(exports_conversation, {
392215
392743
  clearConversation: () => clearConversation
392216
392744
  });
392217
- import { randomUUID as randomUUID26 } from "crypto";
392745
+ import { randomUUID as randomUUID27 } from "crypto";
392218
392746
  async function clearConversation({
392219
392747
  setMessages,
392220
392748
  readFileState,
@@ -392259,7 +392787,7 @@ async function clearConversation({
392259
392787
  setMessages(() => []);
392260
392788
  if (false) {}
392261
392789
  if (setConversationId) {
392262
- setConversationId(randomUUID26());
392790
+ setConversationId(randomUUID27());
392263
392791
  }
392264
392792
  clearSessionCaches(preservedAgentIds);
392265
392793
  setCwd(getOriginalCwd());
@@ -432255,7 +432783,7 @@ function getRecentActivitySync() {
432255
432783
  return cachedActivity;
432256
432784
  }
432257
432785
  function getLogoDisplayData() {
432258
- const version2 = process.env.DEMO_VERSION ?? "0.1.32" ?? "99.0.0";
432786
+ const version2 = process.env.DEMO_VERSION ?? "0.1.34" ?? "99.0.0";
432259
432787
  const serverUrl = getDirectConnectServerUrl();
432260
432788
  const displayPath = process.env.DEMO_VERSION ? "/code/maximo" : getDisplayPath(getCwd());
432261
432789
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -444352,7 +444880,7 @@ var init_InProcessTeammateDetailDialog = __esm(() => {
444352
444880
  });
444353
444881
 
444354
444882
  // src/utils/messages/mappers.ts
444355
- import { randomUUID as randomUUID27 } from "crypto";
444883
+ import { randomUUID as randomUUID28 } from "crypto";
444356
444884
  function toInternalMessages(messages) {
444357
444885
  return messages.flatMap((message) => {
444358
444886
  switch (message.type) {
@@ -444371,7 +444899,7 @@ function toInternalMessages(messages) {
444371
444899
  {
444372
444900
  type: "user",
444373
444901
  message: message.message,
444374
- uuid: message.uuid ?? randomUUID27(),
444902
+ uuid: message.uuid ?? randomUUID28(),
444375
444903
  timestamp: message.timestamp ?? new Date().toISOString(),
444376
444904
  isMeta: message.isSynthetic
444377
444905
  }
@@ -454656,7 +455184,7 @@ __export(exports_branch, {
454656
455184
  deriveFirstPrompt: () => deriveFirstPrompt,
454657
455185
  call: () => call50
454658
455186
  });
454659
- import { randomUUID as randomUUID28 } from "crypto";
455187
+ import { randomUUID as randomUUID29 } from "crypto";
454660
455188
  import { mkdir as mkdir34, readFile as readFile43, writeFile as writeFile39 } from "fs/promises";
454661
455189
  function deriveFirstPrompt(firstUserMessage) {
454662
455190
  const content = firstUserMessage?.message?.content;
@@ -454668,7 +455196,7 @@ function deriveFirstPrompt(firstUserMessage) {
454668
455196
  return raw.replace(/\s+/g, " ").trim().slice(0, 100) || "Branched conversation";
454669
455197
  }
454670
455198
  async function createFork(customTitle) {
454671
- const forkSessionId = randomUUID28();
455199
+ const forkSessionId = randomUUID29();
454672
455200
  const originalSessionId = getSessionId();
454673
455201
  const projectDir = getProjectDir2(getOriginalCwd());
454674
455202
  const forkSessionPath = getTranscriptPathForSession(forkSessionId);
@@ -461720,7 +462248,7 @@ var init_bridge_kick = __esm(() => {
461720
462248
  var call57 = async () => {
461721
462249
  return {
461722
462250
  type: "text",
461723
- value: `${"99.0.0"} (built ${"2026-08-07T23:54:01.463Z"})`
462251
+ value: `${"99.0.0"} (built ${"2026-08-15T17:26:52.338Z"})`
461724
462252
  };
461725
462253
  }, version2, version_default;
461726
462254
  var init_version = __esm(() => {
@@ -477101,9 +477629,9 @@ var init_hookHelpers = __esm(() => {
477101
477629
  });
477102
477630
 
477103
477631
  // src/utils/hooks/execPromptHook.ts
477104
- import { randomUUID as randomUUID29 } from "crypto";
477632
+ import { randomUUID as randomUUID30 } from "crypto";
477105
477633
  async function execPromptHook(hook, hookName, hookEvent, jsonInput, signal, toolUseContext, messages, toolUseID) {
477106
- const effectiveToolUseID = toolUseID || `hook-${randomUUID29()}`;
477634
+ const effectiveToolUseID = toolUseID || `hook-${randomUUID30()}`;
477107
477635
  try {
477108
477636
  const processedPrompt = addArgumentsToPrompt(hook.prompt, jsonInput);
477109
477637
  logForDebugging2(`Hooks: Processing prompt hook with prompt: ${processedPrompt}`);
@@ -477257,9 +477785,9 @@ var init_execPromptHook = __esm(() => {
477257
477785
  });
477258
477786
 
477259
477787
  // src/utils/hooks/execAgentHook.ts
477260
- import { randomUUID as randomUUID30 } from "crypto";
477788
+ import { randomUUID as randomUUID31 } from "crypto";
477261
477789
  async function execAgentHook(hook, hookName, hookEvent, jsonInput, signal, toolUseContext, toolUseID, _messages, agentName) {
477262
- const effectiveToolUseID = toolUseID || `hook-${randomUUID30()}`;
477790
+ const effectiveToolUseID = toolUseID || `hook-${randomUUID31()}`;
477263
477791
  const transcriptPath = toolUseContext.agentId ? getAgentTranscriptPath(toolUseContext.agentId) : getTranscriptPath();
477264
477792
  const hookStartTime = Date.now();
477265
477793
  try {
@@ -477294,7 +477822,7 @@ When done, return your result using the ${SYNTHETIC_OUTPUT_TOOL_NAME} tool with:
477294
477822
  ]);
477295
477823
  const model = hook.model ?? getSmallFastModel();
477296
477824
  const MAX_AGENT_TURNS = 50;
477297
- const hookAgentId = asAgentId(`hook-agent-${randomUUID30()}`);
477825
+ const hookAgentId = asAgentId(`hook-agent-${randomUUID31()}`);
477298
477826
  const agentToolUseContext = {
477299
477827
  ...toolUseContext,
477300
477828
  agentId: hookAgentId,
@@ -477788,7 +478316,7 @@ __export(exports_hooks2, {
477788
478316
  });
477789
478317
  import { basename as basename42 } from "path";
477790
478318
  import { spawn as spawn7 } from "child_process";
477791
- import { randomUUID as randomUUID31 } from "crypto";
478319
+ import { randomUUID as randomUUID32 } from "crypto";
477792
478320
  function getSessionEndHookTimeoutMs() {
477793
478321
  const raw = process.env.MAXIMO_SYNTAX_SESSIONEND_HOOKS_TIMEOUT_MS;
477794
478322
  const parsed = raw ? parseInt(raw, 10) : NaN;
@@ -478826,7 +479354,7 @@ async function* executeHooks({
478826
479354
  parentToolUseID: toolUseID,
478827
479355
  toolUseID,
478828
479356
  timestamp: new Date().toISOString(),
478829
- uuid: randomUUID31()
479357
+ uuid: randomUUID32()
478830
479358
  }
478831
479359
  };
478832
479360
  }
@@ -478888,7 +479416,7 @@ async function* executeHooks({
478888
479416
  const { signal: abortSignal, cleanup } = createCombinedAbortSignal(signal, {
478889
479417
  timeoutMs: commandTimeoutMs
478890
479418
  });
478891
- const hookId = randomUUID31();
479419
+ const hookId = randomUUID32();
478892
479420
  const hookStartMs = Date.now();
478893
479421
  const hookCommand = getHookDisplayText(hook);
478894
479422
  try {
@@ -479536,7 +480064,7 @@ async function executeHooksOutsideREPL({
479536
480064
  const callbackTimeoutMs = hook.timeout ? hook.timeout * 1000 : timeoutMs;
479537
480065
  const { signal: abortSignal2, cleanup: cleanup2 } = createCombinedAbortSignal(signal, { timeoutMs: callbackTimeoutMs });
479538
480066
  try {
479539
- const toolUseID = randomUUID31();
480067
+ const toolUseID = randomUUID32();
479540
480068
  const json2 = await hook.callback(hookInput, toolUseID, abortSignal2, hookIndex);
479541
480069
  cleanup2?.();
479542
480070
  if (isAsyncHookJSONOutput(json2)) {
@@ -479647,7 +480175,7 @@ async function executeHooksOutsideREPL({
479647
480175
  const commandTimeoutMs = hook.timeout ? hook.timeout * 1000 : timeoutMs;
479648
480176
  const { signal: abortSignal, cleanup } = createCombinedAbortSignal(signal, { timeoutMs: commandTimeoutMs });
479649
480177
  try {
479650
- const result = await execCommandHook(hook, hookEvent, hookName, jsonInput, abortSignal, randomUUID31(), hookIndex, pluginRoot, pluginId);
480178
+ const result = await execCommandHook(hook, hookEvent, hookName, jsonInput, abortSignal, randomUUID32(), hookIndex, pluginRoot, pluginId);
479651
480179
  cleanup?.();
479652
480180
  if (result.aborted) {
479653
480181
  logForDebugging2(`${hookName} [${hook.command}] cancelled`);
@@ -479848,7 +480376,7 @@ async function* executeStopHooks(permissionMode, signal, timeoutMs = TOOL_HOOK_E
479848
480376
  };
479849
480377
  yield* executeHooks({
479850
480378
  hookInput,
479851
- toolUseID: randomUUID31(),
480379
+ toolUseID: randomUUID32(),
479852
480380
  signal,
479853
480381
  timeoutMs,
479854
480382
  toolUseContext,
@@ -479865,7 +480393,7 @@ async function* executeTeammateIdleHooks(teammateName, teamName, permissionMode,
479865
480393
  };
479866
480394
  yield* executeHooks({
479867
480395
  hookInput,
479868
- toolUseID: randomUUID31(),
480396
+ toolUseID: randomUUID32(),
479869
480397
  signal,
479870
480398
  timeoutMs
479871
480399
  });
@@ -479882,7 +480410,7 @@ async function* executeTaskCreatedHooks(taskId, taskSubject, taskDescription, te
479882
480410
  };
479883
480411
  yield* executeHooks({
479884
480412
  hookInput,
479885
- toolUseID: randomUUID31(),
480413
+ toolUseID: randomUUID32(),
479886
480414
  signal,
479887
480415
  timeoutMs,
479888
480416
  toolUseContext
@@ -479900,7 +480428,7 @@ async function* executeTaskCompletedHooks(taskId, taskSubject, taskDescription,
479900
480428
  };
479901
480429
  yield* executeHooks({
479902
480430
  hookInput,
479903
- toolUseID: randomUUID31(),
480431
+ toolUseID: randomUUID32(),
479904
480432
  signal,
479905
480433
  timeoutMs,
479906
480434
  toolUseContext
@@ -479919,7 +480447,7 @@ async function* executeUserPromptSubmitHooks(prompt, permissionMode, toolUseCont
479919
480447
  };
479920
480448
  yield* executeHooks({
479921
480449
  hookInput,
479922
- toolUseID: randomUUID31(),
480450
+ toolUseID: randomUUID32(),
479923
480451
  signal: toolUseContext.abortController.signal,
479924
480452
  timeoutMs: TOOL_HOOK_EXECUTION_TIMEOUT_MS,
479925
480453
  toolUseContext,
@@ -479936,7 +480464,7 @@ async function* executeSessionStartHooks(source, sessionId, agentType, model, si
479936
480464
  };
479937
480465
  yield* executeHooks({
479938
480466
  hookInput,
479939
- toolUseID: randomUUID31(),
480467
+ toolUseID: randomUUID32(),
479940
480468
  matchQuery: source,
479941
480469
  signal,
479942
480470
  timeoutMs,
@@ -479951,7 +480479,7 @@ async function* executeSetupHooks(trigger, signal, timeoutMs = TOOL_HOOK_EXECUTI
479951
480479
  };
479952
480480
  yield* executeHooks({
479953
480481
  hookInput,
479954
- toolUseID: randomUUID31(),
480482
+ toolUseID: randomUUID32(),
479955
480483
  matchQuery: trigger,
479956
480484
  signal,
479957
480485
  timeoutMs,
@@ -479967,7 +480495,7 @@ async function* executeSubagentStartHooks(agentId, agentType, signal, timeoutMs
479967
480495
  };
479968
480496
  yield* executeHooks({
479969
480497
  hookInput,
479970
- toolUseID: randomUUID31(),
480498
+ toolUseID: randomUUID32(),
479971
480499
  matchQuery: agentType,
479972
480500
  signal,
479973
480501
  timeoutMs
@@ -480330,7 +480858,7 @@ async function executeStatusLineCommand(statusLineInput, signal, timeoutMs = 500
480330
480858
  const abortSignal = signal || AbortSignal.timeout(timeoutMs);
480331
480859
  try {
480332
480860
  const jsonInput = jsonStringify(statusLineInput);
480333
- const result = await execCommandHook(statusLine, "StatusLine", "statusLine", jsonInput, abortSignal, randomUUID31());
480861
+ const result = await execCommandHook(statusLine, "StatusLine", "statusLine", jsonInput, abortSignal, randomUUID32());
480334
480862
  if (result.aborted) {
480335
480863
  return;
480336
480864
  }
@@ -480374,7 +480902,7 @@ async function executeFileSuggestionCommand(fileSuggestionInput, signal, timeout
480374
480902
  try {
480375
480903
  const jsonInput = jsonStringify(fileSuggestionInput);
480376
480904
  const hook = { type: "command", command: fileSuggestion.command };
480377
- const result = await execCommandHook(hook, "FileSuggestion", "FileSuggestion", jsonInput, abortSignal, randomUUID31());
480905
+ const result = await execCommandHook(hook, "FileSuggestion", "FileSuggestion", jsonInput, abortSignal, randomUUID32());
480378
480906
  if (result.aborted || result.status !== 0) {
480379
480907
  return [];
480380
480908
  }
@@ -481603,7 +482131,7 @@ function getUsingYourToolsSection(enabledTools) {
481603
482131
  `);
481604
482132
  }
481605
482133
  function getAgentToolSection() {
481606
- return isForkSubagentEnabled() ? `Calling ${AGENT_TOOL_NAME} without a subagent_type creates a fork, which runs in the background and keeps its tool output out of your context — so you can keep chatting with the user while it works. Reach for it when research or multi-step implementation work would otherwise fill your context with raw output you won't need again. **If you ARE the fork** — execute directly; do not re-delegate.` : `Use the ${AGENT_TOOL_NAME} tool with specialized agents when the task at hand matches the agent's description. Subagents are valuable for parallelizing independent queries or for protecting the main context window from excessive results, but they should not be used excessively when not needed. Importantly, avoid duplicating work that subagents are already doing - if you delegate research to a subagent, do not also perform the same searches yourself.`;
482134
+ return isForkSubagentEnabled() ? `Calling ${AGENT_TOOL_NAME} without a subagent_type creates a fork, which runs in the background and keeps its tool output out of your context — so you can keep chatting with the user while it works. Reach for it when research or multi-step implementation work would otherwise fill your context with raw output you won't need again. **If you ARE the fork** — execute directly; do not re-delegate.` : `Use the ${AGENT_TOOL_NAME} tool with specialized agents when the task at hand matches the agent's description. Subagents are valuable for parallelizing independent queries or for protecting the main context window from excessive results, but they should not be used excessively when not needed. Importantly, avoid duplicating work that subagents are already doing - if you delegate research to a subagent, do not also perform the same searches yourself. Every ${AGENT_TOOL_NAME} call must include \`description\` (3-5 word title) and \`prompt\` (full task). You may set \`model\` to any available model slug and \`effort\` to any effort that model supports; omit them to inherit the parent. \`isolation\` is \`"none"\` (default) or \`"worktree"\` — never any other value.`;
481607
482135
  }
481608
482136
  function getDiscoverSkillsGuidance() {
481609
482137
  if (false) {}
@@ -482442,7 +482970,7 @@ function insertBlockAfterToolResults(content, block2) {
482442
482970
  }
482443
482971
 
482444
482972
  // src/services/api/maximo.ts
482445
- import { randomUUID as randomUUID32 } from "crypto";
482973
+ import { randomUUID as randomUUID33 } from "crypto";
482446
482974
  function getExtraBodyParams(betaHeaders) {
482447
482975
  const extraBodyStr = process.env.MAXIMO_SYNTAX_EXTRA_BODY;
482448
482976
  let result = {};
@@ -483225,7 +483753,7 @@ ${deferredToolList}
483225
483753
  if (!options2.agentId) {
483226
483754
  headlessProfilerCheckpoint("api_request_sent");
483227
483755
  }
483228
- clientRequestId = getAPIProvider() === "firstParty" && isFirstPartyAnthropicBaseUrl() ? randomUUID32() : undefined;
483756
+ clientRequestId = getAPIProvider() === "firstParty" && isFirstPartyAnthropicBaseUrl() ? randomUUID33() : undefined;
483229
483757
  const result = await anthropic.beta.messages.create({ ...params, stream: true }, {
483230
483758
  signal,
483231
483759
  ...clientRequestId && {
@@ -483455,7 +483983,7 @@ ${deferredToolList}
483455
483983
  },
483456
483984
  requestId: streamRequestId ?? undefined,
483457
483985
  type: "assistant",
483458
- uuid: randomUUID32(),
483986
+ uuid: randomUUID33(),
483459
483987
  timestamp: new Date().toISOString(),
483460
483988
  ...process.env.USER_TYPE === "ant" && research !== undefined && { research },
483461
483989
  ...advisorModel && { advisorModel }
@@ -483635,7 +484163,7 @@ ${deferredToolList}
483635
484163
  },
483636
484164
  requestId: streamRequestId ?? undefined,
483637
484165
  type: "assistant",
483638
- uuid: randomUUID32(),
484166
+ uuid: randomUUID33(),
483639
484167
  timestamp: new Date().toISOString(),
483640
484168
  ...process.env.USER_TYPE === "ant" && research !== undefined && {
483641
484169
  research
@@ -483689,7 +484217,7 @@ ${deferredToolList}
483689
484217
  },
483690
484218
  requestId: streamRequestId ?? undefined,
483691
484219
  type: "assistant",
483692
- uuid: randomUUID32(),
484220
+ uuid: randomUUID33(),
483693
484221
  timestamp: new Date().toISOString(),
483694
484222
  ...process.env.USER_TYPE === "ant" && research !== undefined && { research },
483695
484223
  ...advisorModel && { advisorModel }
@@ -486885,7 +487413,7 @@ function applySafeConfigEnvironmentVariables() {
486885
487413
  process.env.OPENAI_BASE_URL = baseUrl;
486886
487414
  if (!process.env.OPENAI_MODEL) {
486887
487415
  if (baseUrl.includes("api.mytabulon.com")) {
486888
- process.env.OPENAI_MODEL = globalConfig2.mytabulonDefaultModel || "maximo-atlas-preview";
487416
+ process.env.OPENAI_MODEL = normalizeRetiredMytabulonModel(globalConfig2.mytabulonDefaultModel) || MYTABULON_DEFAULT_MODEL;
486889
487417
  } else if (baseUrl.includes("openrouter.ai/api/v1")) {
486890
487418
  process.env.OPENAI_MODEL = "openai/gpt-5.4";
486891
487419
  } else if (baseUrl.includes("opencode.ai/zen/")) {
@@ -488808,7 +489336,7 @@ var init_inboundMessages = __esm(() => {
488808
489336
  });
488809
489337
 
488810
489338
  // src/utils/messages/systemInit.ts
488811
- import { randomUUID as randomUUID33 } from "crypto";
489339
+ import { randomUUID as randomUUID34 } from "crypto";
488812
489340
  function sdkCompatToolName(name) {
488813
489341
  return name === AGENT_TOOL_NAME ? LEGACY_AGENT_TOOL_NAME : name;
488814
489342
  }
@@ -488839,7 +489367,7 @@ function buildSystemInitMessage(inputs) {
488839
489367
  path: plugin2.path,
488840
489368
  source: plugin2.source
488841
489369
  })),
488842
- uuid: randomUUID33()
489370
+ uuid: randomUUID34()
488843
489371
  };
488844
489372
  if (false) {}
488845
489373
  initMessage.fast_mode_state = getFastModeState(inputs.model, inputs.fastMode);
@@ -488927,7 +489455,7 @@ __export(exports_MessageSelector, {
488927
489455
  messagesAfterAreOnlySynthetic: () => messagesAfterAreOnlySynthetic,
488928
489456
  MessageSelector: () => MessageSelector
488929
489457
  });
488930
- import { randomUUID as randomUUID34 } from "crypto";
489458
+ import { randomUUID as randomUUID35 } from "crypto";
488931
489459
  import * as path21 from "path";
488932
489460
  function isTextBlock2(block2) {
488933
489461
  return block2.type === "text";
@@ -488947,7 +489475,7 @@ function MessageSelector({
488947
489475
  const fileHistory = useAppState((s) => s.fileHistory);
488948
489476
  const [error42, setError] = import_react206.useState(undefined);
488949
489477
  const isFileHistoryEnabled = fileHistoryEnabled();
488950
- const currentUUID = import_react206.useMemo(randomUUID34, []);
489478
+ const currentUUID = import_react206.useMemo(randomUUID35, []);
488951
489479
  const messageOptions = import_react206.useMemo(() => [...messages.filter(selectableUserMessagesFilter), {
488952
489480
  ...createUserMessage({
488953
489481
  content: ""
@@ -494817,7 +495345,7 @@ var init_FileEditToolDiff = __esm(() => {
494817
495345
  });
494818
495346
 
494819
495347
  // src/hooks/useDiffInIDE.ts
494820
- import { randomUUID as randomUUID35 } from "crypto";
495348
+ import { randomUUID as randomUUID36 } from "crypto";
494821
495349
  import { basename as basename45 } from "path";
494822
495350
  function useDiffInIDE({
494823
495351
  onChange,
@@ -494828,7 +495356,7 @@ function useDiffInIDE({
494828
495356
  }) {
494829
495357
  const isUnmounted = import_react217.useRef(false);
494830
495358
  const [hasError, setHasError] = import_react217.useState(false);
494831
- const sha = import_react217.useMemo(() => randomUUID35().slice(0, 6), []);
495359
+ const sha = import_react217.useMemo(() => randomUUID36().slice(0, 6), []);
494832
495360
  const tabName = import_react217.useMemo(() => `✻ [Maximo Syntax] ${basename45(filePath)} (${sha}) ⧉`, [filePath, sha]);
494833
495361
  const shouldShowDiffInIDE = hasAccessToIDEExtensionDiffFeature(toolUseContext.options.mcpClients) && getGlobalConfig().diffTool === "auto" && !filePath.endsWith(".ipynb");
494834
495362
  const ideName = getConnectedIdeName(toolUseContext.options.mcpClients) ?? "IDE";
@@ -510235,7 +510763,7 @@ var init_teamDiscovery = __esm(() => {
510235
510763
  });
510236
510764
 
510237
510765
  // src/components/teams/TeamsDialog.tsx
510238
- import { randomUUID as randomUUID36 } from "crypto";
510766
+ import { randomUUID as randomUUID37 } from "crypto";
510239
510767
  function TeamsDialog({
510240
510768
  initialTeams,
510241
510769
  onDone
@@ -510859,7 +511387,7 @@ async function killTeammate(paneId, backendType, teamName, teammateId, teammateN
510859
511387
  },
510860
511388
  inbox: {
510861
511389
  messages: [...prev.inbox.messages, {
510862
- id: randomUUID36(),
511390
+ id: randomUUID37(),
510863
511391
  from: "system",
510864
511392
  text: jsonStringify({
510865
511393
  type: "teammate_terminated",
@@ -517141,7 +517669,7 @@ function normalizeControlMessageKeys(obj) {
517141
517669
  }
517142
517670
 
517143
517671
  // src/bridge/bridgeMessaging.ts
517144
- import { randomUUID as randomUUID37 } from "crypto";
517672
+ import { randomUUID as randomUUID38 } from "crypto";
517145
517673
  function isSDKMessage(value) {
517146
517674
  return value !== null && typeof value === "object" && "type" in value && typeof value.type === "string";
517147
517675
  }
@@ -517349,7 +517877,7 @@ function makeResultMessage(sessionId) {
517349
517877
  modelUsage: {},
517350
517878
  permission_denials: [],
517351
517879
  session_id: sessionId,
517352
- uuid: randomUUID37()
517880
+ uuid: randomUUID38()
517353
517881
  };
517354
517882
  }
517355
517883
 
@@ -517393,7 +517921,7 @@ var init_bridgeMessaging = __esm(() => {
517393
517921
  });
517394
517922
 
517395
517923
  // src/remote/SessionsWebSocket.ts
517396
- import { randomUUID as randomUUID38 } from "crypto";
517924
+ import { randomUUID as randomUUID39 } from "crypto";
517397
517925
  function isSessionsMessage(value) {
517398
517926
  if (typeof value !== "object" || value === null || !("type" in value)) {
517399
517927
  return false;
@@ -517577,7 +518105,7 @@ class SessionsWebSocket {
517577
518105
  }
517578
518106
  const controlRequest = {
517579
518107
  type: "control_request",
517580
- request_id: randomUUID38(),
518108
+ request_id: randomUUID39(),
517581
518109
  request
517582
518110
  };
517583
518111
  logForDebugging2(`[SessionsWebSocket] Sending control request: ${request.subtype}`);
@@ -517769,11 +518297,11 @@ var init_RemoteSessionManager = __esm(() => {
517769
518297
  });
517770
518298
 
517771
518299
  // src/remote/remotePermissionBridge.ts
517772
- import { randomUUID as randomUUID39 } from "crypto";
518300
+ import { randomUUID as randomUUID40 } from "crypto";
517773
518301
  function createSyntheticAssistantMessage(request, requestId) {
517774
518302
  return {
517775
518303
  type: "assistant",
517776
- uuid: randomUUID39(),
518304
+ uuid: randomUUID40(),
517777
518305
  message: {
517778
518306
  id: `remote-${requestId}`,
517779
518307
  type: "message",
@@ -518576,7 +519104,7 @@ var init_useDirectConnect = __esm(() => {
518576
519104
  });
518577
519105
 
518578
519106
  // src/hooks/useSSHSession.ts
518579
- import { randomUUID as randomUUID40 } from "crypto";
519107
+ import { randomUUID as randomUUID41 } from "crypto";
518580
519108
  function useSSHSession({
518581
519109
  session: session2,
518582
519110
  setMessages,
@@ -518674,7 +519202,7 @@ function useSSHSession({
518674
519202
  subtype: "informational",
518675
519203
  content: `SSH connection dropped — reconnecting (attempt ${attempt}/${max2})...`,
518676
519204
  timestamp: new Date().toISOString(),
518677
- uuid: randomUUID40(),
519205
+ uuid: randomUUID41(),
518678
519206
  level: "warning"
518679
519207
  };
518680
519208
  setMessages((prev) => [...prev, msg]);
@@ -520816,7 +521344,7 @@ var init_PermissionContext = __esm(() => {
520816
521344
  });
520817
521345
 
520818
521346
  // src/hooks/toolPermission/handlers/interactiveHandler.ts
520819
- import { randomUUID as randomUUID41 } from "crypto";
521347
+ import { randomUUID as randomUUID42 } from "crypto";
520820
521348
  function handleInteractivePermission(params, resolve42) {
520821
521349
  const {
520822
521350
  ctx,
@@ -520834,7 +521362,7 @@ function handleInteractivePermission(params, resolve42) {
520834
521362
  let userInteracted = false;
520835
521363
  let checkmarkTransitionTimer;
520836
521364
  let checkmarkAbortHandler;
520837
- const bridgeRequestId = bridgeCallbacks ? randomUUID41() : undefined;
521365
+ const bridgeRequestId = bridgeCallbacks ? randomUUID42() : undefined;
520838
521366
  let channelUnsubscribe;
520839
521367
  const permissionPromptStartTimeMs = Date.now();
520840
521368
  const displayInput = result.updatedInput ?? ctx.input;
@@ -521256,9 +521784,9 @@ function matchesKeepGoingKeyword(input) {
521256
521784
  }
521257
521785
 
521258
521786
  // src/utils/processUserInput/processTextPrompt.ts
521259
- import { randomUUID as randomUUID42 } from "crypto";
521787
+ import { randomUUID as randomUUID43 } from "crypto";
521260
521788
  function processTextPrompt(input, imageContentBlocks, imagePasteIds, attachmentMessages, uuid3, permissionMode, isMeta) {
521261
- const promptId = randomUUID42();
521789
+ const promptId = randomUUID43();
521262
521790
  setPromptId(promptId);
521263
521791
  const userPromptText = typeof input === "string" ? input : input.find((block2) => block2.type === "text")?.text || "";
521264
521792
  startInteractionSpan(userPromptText);
@@ -521392,7 +521920,7 @@ var exports_processBashCommand = {};
521392
521920
  __export(exports_processBashCommand, {
521393
521921
  processBashCommand: () => processBashCommand
521394
521922
  });
521395
- import { randomUUID as randomUUID43 } from "crypto";
521923
+ import { randomUUID as randomUUID44 } from "crypto";
521396
521924
  async function processBashCommand(inputString, precedingInputBlocks, attachmentMessages, context8, setToolJSX) {
521397
521925
  const usePowerShell = isPowerShellToolEnabled() && resolveDefaultShell() === "powershell";
521398
521926
  logEvent("tengu_input_bash", {
@@ -521456,7 +521984,7 @@ async function processBashCommand(inputString, precedingInputBlocks, attachmentM
521456
521984
  const mapped = await processToolResultBlock(shellTool, {
521457
521985
  ...data,
521458
521986
  stderr: ""
521459
- }, randomUUID43());
521987
+ }, randomUUID44());
521460
521988
  const stdout = typeof mapped.content === "string" ? mapped.content : escapeXml(data.stdout);
521461
521989
  return {
521462
521990
  messages: [createSyntheticUserCaveatMessage(), userMessage, ...attachmentMessages, createUserMessage({
@@ -521505,7 +522033,7 @@ var init_processBashCommand = __esm(() => {
521505
522033
  });
521506
522034
 
521507
522035
  // src/utils/processUserInput/processUserInput.ts
521508
- import { randomUUID as randomUUID44 } from "crypto";
522036
+ import { randomUUID as randomUUID45 } from "crypto";
521509
522037
  async function processUserInput({
521510
522038
  input,
521511
522039
  preExpansionInput,
@@ -521567,7 +522095,7 @@ Original prompt: ${input}`, "warning")
521567
522095
  type: "hook_additional_context",
521568
522096
  content: hookResult.additionalContexts.map(applyTruncation),
521569
522097
  hookName: "UserPromptSubmit",
521570
- toolUseID: `hook-${randomUUID44()}`,
522098
+ toolUseID: `hook-${randomUUID45()}`,
521571
522099
  hookEvent: "UserPromptSubmit"
521572
522100
  }));
521573
522101
  }
@@ -523073,7 +523601,7 @@ var init_sessionRestore = __esm(() => {
523073
523601
  });
523074
523602
 
523075
523603
  // src/hooks/useInboxPoller.ts
523076
- import { randomUUID as randomUUID45 } from "crypto";
523604
+ import { randomUUID as randomUUID46 } from "crypto";
523077
523605
  function getAgentNameToPoll(appState) {
523078
523606
  if (isInProcessTeammate()) {
523079
523607
  return;
@@ -523490,7 +524018,7 @@ function useInboxPoller({
523490
524018
  messages: [
523491
524019
  ...prev.inbox.messages,
523492
524020
  {
523493
- id: randomUUID45(),
524021
+ id: randomUUID46(),
523494
524022
  from: "system",
523495
524023
  text: jsonStringify({
523496
524024
  type: "teammate_terminated",
@@ -523530,7 +524058,7 @@ ${messageContent}
523530
524058
  messages: [
523531
524059
  ...prev.inbox.messages,
523532
524060
  ...regularMessages.map((m) => ({
523533
- id: randomUUID45(),
524061
+ id: randomUUID46(),
523534
524062
  from: m.from,
523535
524063
  text: m.text,
523536
524064
  timestamp: m.timestamp,
@@ -524434,7 +524962,7 @@ var init_submitTranscriptShare = __esm(() => {
524434
524962
  });
524435
524963
 
524436
524964
  // src/components/FeedbackSurvey/useSurveyState.tsx
524437
- import { randomUUID as randomUUID46 } from "crypto";
524965
+ import { randomUUID as randomUUID47 } from "crypto";
524438
524966
  function useSurveyState({
524439
524967
  hideThanksAfterMs,
524440
524968
  onOpen,
@@ -524445,7 +524973,7 @@ function useSurveyState({
524445
524973
  }) {
524446
524974
  const [state2, setState] = import_react300.useState("closed");
524447
524975
  const [lastResponse, setLastResponse] = import_react300.useState(null);
524448
- const appearanceId = import_react300.useRef(randomUUID46());
524976
+ const appearanceId = import_react300.useRef(randomUUID47());
524449
524977
  const lastResponseRef = import_react300.useRef(null);
524450
524978
  const showThanksThenClose = import_react300.useCallback(() => {
524451
524979
  setState("thanks");
@@ -524463,7 +524991,7 @@ function useSurveyState({
524463
524991
  return;
524464
524992
  }
524465
524993
  setState("open");
524466
- appearanceId.current = randomUUID46();
524994
+ appearanceId.current = randomUUID47();
524467
524995
  onOpen(appearanceId.current);
524468
524996
  }, [state2, onOpen]);
524469
524997
  const handleSelect = import_react300.useCallback((selected) => {
@@ -526677,13 +527205,13 @@ function permissionPromptToolResultToPermissionDecision(result, tool, input, too
526677
527205
  decisionReason
526678
527206
  };
526679
527207
  }
526680
- var inputSchema40, decisionClassificationField, PermissionAllowResultSchema, PermissionDenyResultSchema, outputSchema33;
527208
+ var inputSchema41, decisionClassificationField, PermissionAllowResultSchema, PermissionDenyResultSchema, outputSchema34;
526681
527209
  var init_PermissionPromptToolResultSchema = __esm(() => {
526682
527210
  init_v4();
526683
527211
  init_debug();
526684
527212
  init_PermissionUpdate();
526685
527213
  init_PermissionUpdateSchema();
526686
- inputSchema40 = lazySchema(() => v4_default.object({
527214
+ inputSchema41 = lazySchema(() => v4_default.object({
526687
527215
  tool_name: v4_default.string().describe("The name of the tool requesting permission"),
526688
527216
  input: v4_default.record(v4_default.string(), v4_default.unknown()).describe("The input for the tool"),
526689
527217
  tool_use_id: v4_default.string().optional().describe("The unique tool use request ID")
@@ -526706,7 +527234,7 @@ var init_PermissionPromptToolResultSchema = __esm(() => {
526706
527234
  toolUseID: v4_default.string().optional(),
526707
527235
  decisionClassification: decisionClassificationField()
526708
527236
  }));
526709
- outputSchema33 = lazySchema(() => v4_default.union([PermissionAllowResultSchema(), PermissionDenyResultSchema()]));
527237
+ outputSchema34 = lazySchema(() => v4_default.union([PermissionAllowResultSchema(), PermissionDenyResultSchema()]));
526710
527238
  });
526711
527239
 
526712
527240
  // src/cli/ndjsonSafeStringify.ts
@@ -526723,7 +527251,7 @@ var init_ndjsonSafeStringify = __esm(() => {
526723
527251
  });
526724
527252
 
526725
527253
  // src/cli/structuredIO.ts
526726
- import { randomUUID as randomUUID47 } from "crypto";
527254
+ import { randomUUID as randomUUID48 } from "crypto";
526727
527255
  function serializeDecisionReason(reason) {
526728
527256
  if (!reason) {
526729
527257
  return;
@@ -526973,7 +527501,7 @@ class StructuredIO {
526973
527501
  writeToStdout(ndjsonSafeStringify(message) + `
526974
527502
  `);
526975
527503
  }
526976
- async sendRequest(request, schema, signal, requestId = randomUUID47()) {
527504
+ async sendRequest(request, schema, signal, requestId = randomUUID48()) {
526977
527505
  const message = {
526978
527506
  type: "control_request",
526979
527507
  request_id: requestId,
@@ -527039,7 +527567,7 @@ class StructuredIO {
527039
527567
  parentSignal.addEventListener("abort", onParentAbort, { once: true });
527040
527568
  try {
527041
527569
  const hookPromise = executePermissionRequestHooksForSDK(tool.name, toolUseID, input, toolUseContext, mainPermissionResult.suggestions).then((decision) => ({ source: "hook", decision }));
527042
- const requestId = randomUUID47();
527570
+ const requestId = randomUUID48();
527043
527571
  onPermissionPrompt?.(buildRequiresActionDetails(tool, input, toolUseID, requestId));
527044
527572
  const sdkPromise = this.sendRequest({
527045
527573
  subtype: "can_use_tool",
@@ -527050,7 +527578,7 @@ class StructuredIO {
527050
527578
  decision_reason: serializeDecisionReason(mainPermissionResult.decisionReason),
527051
527579
  tool_use_id: toolUseID,
527052
527580
  agent_id: toolUseContext.agentId
527053
- }, outputSchema33(), hookAbortController.signal, requestId).then((result) => ({ source: "sdk", result }));
527581
+ }, outputSchema34(), hookAbortController.signal, requestId).then((result) => ({ source: "sdk", result }));
527054
527582
  const winner = await Promise.race([hookPromise, sdkPromise]);
527055
527583
  if (winner.source === "hook") {
527056
527584
  if (winner.decision) {
@@ -527119,9 +527647,9 @@ class StructuredIO {
527119
527647
  subtype: "can_use_tool",
527120
527648
  tool_name: SANDBOX_NETWORK_ACCESS_TOOL_NAME,
527121
527649
  input: { host: hostPattern.host },
527122
- tool_use_id: randomUUID47(),
527650
+ tool_use_id: randomUUID48(),
527123
527651
  description: `Allow network connection to ${hostPattern.host}?`
527124
- }, outputSchema33());
527652
+ }, outputSchema34());
527125
527653
  return result.behavior === "allow";
527126
527654
  } catch {
527127
527655
  return false;
@@ -531462,7 +531990,7 @@ __export(exports_REPL, {
531462
531990
  import { dirname as dirname60, join as join147 } from "path";
531463
531991
  import { tmpdir as tmpdir12 } from "os";
531464
531992
  import { writeFile as writeFile47 } from "fs/promises";
531465
- import { randomUUID as randomUUID48 } from "crypto";
531993
+ import { randomUUID as randomUUID49 } from "crypto";
531466
531994
  function TranscriptModeFooter(t0) {
531467
531995
  const $2 = import_react_compiler_runtime363.c(9);
531468
531996
  const {
@@ -532178,7 +532706,7 @@ function REPL({
532178
532706
  const [isMessageSelectorVisible, setIsMessageSelectorVisible] = import_react327.useState(false);
532179
532707
  const [messageSelectorPreselect, setMessageSelectorPreselect] = import_react327.useState(undefined);
532180
532708
  const [showCostDialog, setShowCostDialog] = import_react327.useState(false);
532181
- const [conversationId, setConversationId] = import_react327.useState(randomUUID48());
532709
+ const [conversationId, setConversationId] = import_react327.useState(randomUUID49());
532182
532710
  const [idleReturnPending, setIdleReturnPending] = import_react327.useState(null);
532183
532711
  const skipIdleCheckRef = import_react327.useRef(false);
532184
532712
  const lastQueryCompletionTimeRef = import_react327.useRef(lastQueryCompletionTime);
@@ -532971,7 +533499,7 @@ Error: sandbox required but unavailable: ${reason}
532971
533499
  } else {
532972
533500
  setMessages(() => [newMessage]);
532973
533501
  }
532974
- setConversationId(randomUUID48());
533502
+ setConversationId(randomUUID49());
532975
533503
  if (false) {}
532976
533504
  } else if (newMessage.type === "progress" && isEphemeralToolProgress(newMessage.data.type)) {
532977
533505
  setMessages((oldMessages) => {
@@ -533054,7 +533582,7 @@ Error: sandbox required but unavailable: ${reason}
533054
533582
  });
533055
533583
  if (!shouldQuery) {
533056
533584
  if (newMessages.some(isCompactBoundaryMessage)) {
533057
- setConversationId(randomUUID48());
533585
+ setConversationId(randomUUID49());
533058
533586
  if (false) {}
533059
533587
  }
533060
533588
  resetLoadingState();
@@ -533701,7 +534229,7 @@ Error: sandbox required but unavailable: ${reason}
533701
534229
  rewindToMessageIndex: messageIndex
533702
534230
  });
533703
534231
  setMessages(prev.slice(0, messageIndex));
533704
- setConversationId(randomUUID48());
534232
+ setConversationId(randomUUID49());
533705
534233
  resetMicrocompactState();
533706
534234
  if (false) {}
533707
534235
  setAppState((prev2) => ({
@@ -534900,7 +535428,7 @@ Note: ctrl + z now suspends Maximo Syntax, ctrl + _ undoes input.
534900
535428
  setMessages(postCompact);
534901
535429
  }
534902
535430
  if (false) {}
534903
- setConversationId(randomUUID48());
535431
+ setConversationId(randomUUID49());
534904
535432
  runPostCompactCleanup(context8.options.querySource);
534905
535433
  if (direction === "from") {
534906
535434
  const r = textForResubmit(message);
@@ -536252,7 +536780,7 @@ function SetupRow({ children }) {
536252
536780
  }
536253
536781
  function WelcomeV2() {
536254
536782
  const { columns } = useTerminalSize();
536255
- const version3 = "0.1.32";
536783
+ const version3 = "0.1.34";
536256
536784
  const width = Math.max(48, Math.min(columns || 92, 92));
536257
536785
  const stacked = width < OCTOPUS_COMPACT_WIDTH + 42;
536258
536786
  return /* @__PURE__ */ jsx_runtime479.jsx(ThemedBox_default, {
@@ -542989,7 +543517,7 @@ function coalescePatches(base2, overlay) {
542989
543517
  var init_WorkerStateUploader = () => {};
542990
543518
 
542991
543519
  // src/cli/transports/ccrClient.ts
542992
- import { randomUUID as randomUUID49 } from "crypto";
543520
+ import { randomUUID as randomUUID50 } from "crypto";
542993
543521
  function alwaysValidStatus() {
542994
543522
  return true;
542995
543523
  }
@@ -543348,7 +543876,7 @@ class CCRClient {
543348
543876
  return {
543349
543877
  payload: {
543350
543878
  ...msg,
543351
- uuid: typeof msg.uuid === "string" ? msg.uuid : randomUUID49()
543879
+ uuid: typeof msg.uuid === "string" ? msg.uuid : randomUUID50()
543352
543880
  }
543353
543881
  };
543354
543882
  }
@@ -543372,7 +543900,7 @@ class CCRClient {
543372
543900
  payload: {
543373
543901
  type: eventType,
543374
543902
  ...payload,
543375
- uuid: typeof payload.uuid === "string" ? payload.uuid : randomUUID49()
543903
+ uuid: typeof payload.uuid === "string" ? payload.uuid : randomUUID50()
543376
543904
  },
543377
543905
  ...isCompaction && { is_compaction: true },
543378
543906
  ...agentId && { agent_id: agentId }
@@ -544880,7 +545408,7 @@ var init_queryContext = __esm(() => {
544880
545408
  });
544881
545409
 
544882
545410
  // src/QueryEngine.ts
544883
- import { randomUUID as randomUUID50 } from "crypto";
545411
+ import { randomUUID as randomUUID51 } from "crypto";
544884
545412
 
544885
545413
  class QueryEngine {
544886
545414
  config;
@@ -545177,7 +545705,7 @@ class QueryEngine {
545177
545705
  modelUsage: getModelUsage(),
545178
545706
  permission_denials: this.permissionDenials,
545179
545707
  fast_mode_state: getFastModeState(mainLoopModel, initialAppState.fastMode),
545180
- uuid: randomUUID50()
545708
+ uuid: randomUUID51()
545181
545709
  };
545182
545710
  return;
545183
545711
  }
@@ -545290,7 +545818,7 @@ class QueryEngine {
545290
545818
  event: message.event,
545291
545819
  session_id: getSessionId(),
545292
545820
  parent_tool_use_id: null,
545293
- uuid: randomUUID50()
545821
+ uuid: randomUUID51()
545294
545822
  };
545295
545823
  }
545296
545824
  break;
@@ -545322,7 +545850,7 @@ class QueryEngine {
545322
545850
  modelUsage: getModelUsage(),
545323
545851
  permission_denials: this.permissionDenials,
545324
545852
  fast_mode_state: getFastModeState(mainLoopModel, initialAppState.fastMode),
545325
- uuid: randomUUID50(),
545853
+ uuid: randomUUID51(),
545326
545854
  errors: [
545327
545855
  `Reached maximum number of turns (${message.attachment.maxTurns})`
545328
545856
  ]
@@ -545426,7 +545954,7 @@ class QueryEngine {
545426
545954
  modelUsage: getModelUsage(),
545427
545955
  permission_denials: this.permissionDenials,
545428
545956
  fast_mode_state: getFastModeState(mainLoopModel, initialAppState.fastMode),
545429
- uuid: randomUUID50(),
545957
+ uuid: randomUUID51(),
545430
545958
  errors: [`Reached maximum budget ($${maxBudgetUsd})`]
545431
545959
  };
545432
545960
  return;
@@ -545455,7 +545983,7 @@ class QueryEngine {
545455
545983
  modelUsage: getModelUsage(),
545456
545984
  permission_denials: this.permissionDenials,
545457
545985
  fast_mode_state: getFastModeState(mainLoopModel, initialAppState.fastMode),
545458
- uuid: randomUUID50(),
545986
+ uuid: randomUUID51(),
545459
545987
  errors: [
545460
545988
  `Failed to provide valid structured output after ${maxRetries} attempts`
545461
545989
  ]
@@ -545487,7 +546015,7 @@ class QueryEngine {
545487
546015
  modelUsage: getModelUsage(),
545488
546016
  permission_denials: this.permissionDenials,
545489
546017
  fast_mode_state: getFastModeState(mainLoopModel, initialAppState.fastMode),
545490
- uuid: randomUUID50(),
546018
+ uuid: randomUUID51(),
545491
546019
  errors: (() => {
545492
546020
  const all4 = getInMemoryErrors();
545493
546021
  const start = errorLogWatermark ? all4.lastIndexOf(errorLogWatermark) + 1 : 0;
@@ -545524,7 +546052,7 @@ class QueryEngine {
545524
546052
  permission_denials: this.permissionDenials,
545525
546053
  structured_output: structuredOutputFromTool,
545526
546054
  fast_mode_state: getFastModeState(mainLoopModel, initialAppState.fastMode),
545527
- uuid: randomUUID50()
546055
+ uuid: randomUUID51()
545528
546056
  };
545529
546057
  }
545530
546058
  interrupt() {
@@ -545701,7 +546229,7 @@ var init_idleTimeout = __esm(() => {
545701
546229
  });
545702
546230
 
545703
546231
  // src/bridge/inboundAttachments.ts
545704
- import { randomUUID as randomUUID51 } from "crypto";
546232
+ import { randomUUID as randomUUID52 } from "crypto";
545705
546233
  import { mkdir as mkdir45, writeFile as writeFile50 } from "fs/promises";
545706
546234
  import { basename as basename58, join as join150 } from "path";
545707
546235
  function debug(msg) {
@@ -545746,7 +546274,7 @@ async function resolveOne(att) {
545746
546274
  return;
545747
546275
  }
545748
546276
  const safeName = sanitizeFileName(att.file_name);
545749
- const prefix = (att.file_uuid.slice(0, 8) || randomUUID51().slice(0, 8)).replace(/[^a-zA-Z0-9_-]/g, "_");
546277
+ const prefix = (att.file_uuid.slice(0, 8) || randomUUID52().slice(0, 8)).replace(/[^a-zA-Z0-9_-]/g, "_");
545750
546278
  const dir = uploadsDir();
545751
546279
  const outPath = join150(dir, `${prefix}-${safeName}`);
545752
546280
  try {
@@ -545810,11 +546338,11 @@ var init_inboundAttachments = __esm(() => {
545810
546338
  });
545811
546339
 
545812
546340
  // src/utils/sessionUrl.ts
545813
- import { randomUUID as randomUUID52 } from "crypto";
546341
+ import { randomUUID as randomUUID53 } from "crypto";
545814
546342
  function parseSessionIdentifier(resumeIdentifier) {
545815
546343
  if (resumeIdentifier.toLowerCase().endsWith(".jsonl")) {
545816
546344
  return {
545817
- sessionId: randomUUID52(),
546345
+ sessionId: randomUUID53(),
545818
546346
  ingressUrl: null,
545819
546347
  isUrl: false,
545820
546348
  jsonlFile: resumeIdentifier,
@@ -545833,7 +546361,7 @@ function parseSessionIdentifier(resumeIdentifier) {
545833
546361
  try {
545834
546362
  const url3 = new URL(resumeIdentifier);
545835
546363
  return {
545836
- sessionId: randomUUID52(),
546364
+ sessionId: randomUUID53(),
545837
546365
  ingressUrl: url3.href,
545838
546366
  isUrl: true,
545839
546367
  jsonlFile: null,
@@ -546442,7 +546970,7 @@ var init_bridgePointer = __esm(() => {
546442
546970
  });
546443
546971
 
546444
546972
  // src/bridge/replBridge.ts
546445
- import { randomUUID as randomUUID53 } from "crypto";
546973
+ import { randomUUID as randomUUID54 } from "crypto";
546446
546974
  async function initBridgeCore(params) {
546447
546975
  const {
546448
546976
  dir,
@@ -546499,9 +547027,9 @@ async function initBridgeCore(params) {
546499
547027
  spawnMode: "single-session",
546500
547028
  verbose: false,
546501
547029
  sandbox: false,
546502
- bridgeId: randomUUID53(),
547030
+ bridgeId: randomUUID54(),
546503
547031
  workerType,
546504
- environmentId: randomUUID53(),
547032
+ environmentId: randomUUID54(),
546505
547033
  reuseEnvironmentId: prior?.environmentId,
546506
547034
  apiBaseUrl: baseUrl,
546507
547035
  sessionIngressUrl
@@ -548351,7 +548879,7 @@ __export(exports_print, {
548351
548879
  import { readFile as readFile53, stat as stat52 } from "fs/promises";
548352
548880
  import { dirname as dirname64 } from "path";
548353
548881
  import { cwd as cwd2 } from "process";
548354
- import { randomUUID as randomUUID54 } from "crypto";
548882
+ import { randomUUID as randomUUID55 } from "crypto";
548355
548883
  function trackReceivedMessageUuid(uuid3) {
548356
548884
  if (receivedMessageUuids.has(uuid3)) {
548357
548885
  return false;
@@ -548471,7 +548999,7 @@ Error: sandbox required but unavailable: ${sandboxUnavailableReason}
548471
548999
  hook_id: event.hookId,
548472
549000
  hook_name: event.hookName,
548473
549001
  hook_event: event.hookEvent,
548474
- uuid: randomUUID54(),
549002
+ uuid: randomUUID55(),
548475
549003
  session_id: getSessionId()
548476
549004
  };
548477
549005
  case "progress":
@@ -548484,7 +549012,7 @@ Error: sandbox required but unavailable: ${sandboxUnavailableReason}
548484
549012
  stdout: event.stdout,
548485
549013
  stderr: event.stderr,
548486
549014
  output: event.output,
548487
- uuid: randomUUID54(),
549015
+ uuid: randomUUID55(),
548488
549016
  session_id: getSessionId()
548489
549017
  };
548490
549018
  case "response":
@@ -548499,7 +549027,7 @@ Error: sandbox required but unavailable: ${sandboxUnavailableReason}
548499
549027
  stderr: event.stderr,
548500
549028
  exit_code: event.exitCode,
548501
549029
  outcome: event.outcome,
548502
- uuid: randomUUID54(),
549030
+ uuid: randomUUID55(),
548503
549031
  session_id: getSessionId()
548504
549032
  };
548505
549033
  }
@@ -548517,7 +549045,7 @@ Error: sandbox required but unavailable: ${sandboxUnavailableReason}
548517
549045
  decision: event.decision,
548518
549046
  classifier: event.classifier,
548519
549047
  reason: event.reason,
548520
- uuid: randomUUID54(),
549048
+ uuid: randomUUID55(),
548521
549049
  session_id: getSessionId()
548522
549050
  });
548523
549051
  });
@@ -548711,7 +549239,7 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
548711
549239
  subtype: "status",
548712
549240
  status: null,
548713
549241
  permissionMode: newMode,
548714
- uuid: randomUUID54(),
549242
+ uuid: randomUUID55(),
548715
549243
  session_id: getSessionId()
548716
549244
  });
548717
549245
  }
@@ -548732,7 +549260,7 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
548732
549260
  isAuthenticating: status2.isAuthenticating,
548733
549261
  output: status2.output,
548734
549262
  error: status2.error,
548735
- uuid: randomUUID54(),
549263
+ uuid: randomUUID55(),
548736
549264
  session_id: getSessionId()
548737
549265
  });
548738
549266
  });
@@ -548743,7 +549271,7 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
548743
549271
  output.enqueue({
548744
549272
  type: "rate_limit_event",
548745
549273
  rate_limit_info: rateLimitInfo,
548746
- uuid: randomUUID54(),
549274
+ uuid: randomUUID55(),
548747
549275
  session_id: getSessionId()
548748
549276
  });
548749
549277
  }
@@ -548759,7 +549287,7 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
548759
549287
  enqueue({
548760
549288
  mode: "prompt",
548761
549289
  value: turnInterruptionState.message.message.content,
548762
- uuid: randomUUID54()
549290
+ uuid: randomUUID55()
548763
549291
  });
548764
549292
  }
548765
549293
  const modelOptions = getModelOptions();
@@ -548853,7 +549381,7 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
548853
549381
  subtype: "elicitation_complete",
548854
549382
  mcp_server_name: serverName,
548855
549383
  elicitation_id: elicitationId,
548856
- uuid: randomUUID54(),
549384
+ uuid: randomUUID55(),
548857
549385
  session_id: getSessionId()
548858
549386
  });
548859
549387
  });
@@ -549201,7 +549729,7 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
549201
549729
  duration_ms: durationMsMatch ? parseInt(durationMsMatch[1], 10) : 0
549202
549730
  } : undefined,
549203
549731
  session_id: getSessionId(),
549204
- uuid: randomUUID54()
549732
+ uuid: randomUUID55()
549205
549733
  });
549206
549734
  }
549207
549735
  }
@@ -549275,7 +549803,7 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
549275
549803
  subtype: "status",
549276
549804
  status: status2,
549277
549805
  session_id: getSessionId(),
549278
- uuid: randomUUID54()
549806
+ uuid: randomUUID55()
549279
549807
  });
549280
549808
  }
549281
549809
  })) {
@@ -549323,7 +549851,7 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
549323
549851
  const suggestionMsg = {
549324
549852
  type: "prompt_suggestion",
549325
549853
  suggestion: result.suggestion,
549326
- uuid: randomUUID54(),
549854
+ uuid: randomUUID55(),
549327
549855
  session_id: getSessionId()
549328
549856
  };
549329
549857
  const lastEmittedEntry = {
@@ -549413,7 +549941,7 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
549413
549941
  usage: EMPTY_USAGE,
549414
549942
  modelUsage: {},
549415
549943
  permission_denials: [],
549416
- uuid: randomUUID54(),
549944
+ uuid: randomUUID55(),
549417
549945
  errors: [
549418
549946
  errorMessage(error42),
549419
549947
  ...getInMemoryErrors().map((_) => _.error)
@@ -549497,7 +550025,7 @@ ${m.text}
549497
550025
  enqueue({
549498
550026
  mode: "prompt",
549499
550027
  value: formatted,
549500
- uuid: randomUUID54()
550028
+ uuid: randomUUID55()
549501
550029
  });
549502
550030
  run();
549503
550031
  return;
@@ -549508,7 +550036,7 @@ ${m.text}
549508
550036
  enqueue({
549509
550037
  mode: "prompt",
549510
550038
  value: SHUTDOWN_TEAM_PROMPT,
549511
- uuid: randomUUID54()
550039
+ uuid: randomUUID55()
549512
550040
  });
549513
550041
  run();
549514
550042
  return;
@@ -549532,7 +550060,7 @@ ${m.text}
549532
550060
  enqueue({
549533
550061
  mode: "prompt",
549534
550062
  value: SHUTDOWN_TEAM_PROMPT,
549535
- uuid: randomUUID54()
550063
+ uuid: randomUUID55()
549536
550064
  });
549537
550065
  run();
549538
550066
  } else {
@@ -550283,7 +550811,7 @@ ${m.text}
550283
550811
  subtype: "bridge_state",
550284
550812
  state: state2,
550285
550813
  detail,
550286
- uuid: randomUUID54(),
550814
+ uuid: randomUUID55(),
550287
550815
  session_id: getSessionId()
550288
550816
  });
550289
550817
  },
@@ -550441,7 +550969,7 @@ function createCanUseToolWithPermissionPrompt(permissionPromptTool) {
550441
550969
  if (!permissionToolResultBlockParam.content || !Array.isArray(permissionToolResultBlockParam.content) || !permissionToolResultBlockParam.content[0] || permissionToolResultBlockParam.content[0].type !== "text" || typeof permissionToolResultBlockParam.content[0].text !== "string") {
550442
550970
  throw new Error('Permission prompt tool returned an invalid result. Expected a single text block param with type="text" and a string text value.');
550443
550971
  }
550444
- return permissionPromptToolResultToPermissionDecision(outputSchema33().parse(safeParseJSON(permissionToolResultBlockParam.content[0].text)), permissionPromptTool, input, toolUseContext);
550972
+ return permissionPromptToolResultToPermissionDecision(outputSchema34().parse(safeParseJSON(permissionToolResultBlockParam.content[0].text)), permissionPromptTool, input, toolUseContext);
550445
550973
  };
550446
550974
  return canUseTool;
550447
550975
  }
@@ -550591,7 +551119,7 @@ async function handleInitializeRequest(request, requestId, initialized5, output,
550591
551119
  isAuthenticating: status2.isAuthenticating,
550592
551120
  output: status2.output,
550593
551121
  error: status2.error,
550594
- uuid: randomUUID54(),
551122
+ uuid: randomUUID55(),
550595
551123
  session_id: getSessionId()
550596
551124
  });
550597
551125
  }
@@ -550790,7 +551318,7 @@ function emitLoadError(message, outputFormat) {
550790
551318
  usage: EMPTY_USAGE,
550791
551319
  modelUsage: {},
550792
551320
  permission_denials: [],
550793
- uuid: randomUUID54(),
551321
+ uuid: randomUUID55(),
550794
551322
  errors: [message]
550795
551323
  };
550796
551324
  process.stdout.write(jsonStringify(errorResult) + `
@@ -552186,11 +552714,11 @@ async function startMCPServer(cwd3, debug2, verbose) {
552186
552714
  const tools = getTools(toolPermissionContext);
552187
552715
  return {
552188
552716
  tools: await Promise.all(tools.map(async (tool) => {
552189
- let outputSchema34;
552717
+ let outputSchema35;
552190
552718
  if (tool.outputSchema) {
552191
552719
  const convertedSchema = zodToJsonSchema3(tool.outputSchema);
552192
552720
  if (typeof convertedSchema === "object" && convertedSchema !== null && "type" in convertedSchema && convertedSchema.type === "object") {
552193
- outputSchema34 = convertedSchema;
552721
+ outputSchema35 = convertedSchema;
552194
552722
  }
552195
552723
  }
552196
552724
  return {
@@ -552201,7 +552729,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
552201
552729
  agents: []
552202
552730
  }),
552203
552731
  inputSchema: zodToJsonSchema3(tool.inputSchema),
552204
- outputSchema: outputSchema34
552732
+ outputSchema: outputSchema35
552205
552733
  };
552206
552734
  }))
552207
552735
  };
@@ -554602,7 +555130,7 @@ async function run() {
554602
555130
  }).hideHelp()).option("--replay-user-messages", "Re-emit user messages from stdin back on stdout for acknowledgment (only works with --input-format=stream-json and --output-format=stream-json)", () => true).addOption(new Option("--enable-auth-status", "Enable auth status messages in SDK mode").default(false).hideHelp()).option("--allowedTools, --allowed-tools <tools...>", 'Comma or space-separated list of tool names to allow (e.g. "Bash(git:*) Edit")').option("--tools <tools...>", 'Specify the list of available tools from the built-in set. Use "" to disable all tools, "default" to use all tools, or specify tool names (e.g. "Bash,Edit,Read").').option("--disallowedTools, --disallowed-tools <tools...>", 'Comma or space-separated list of tool names to deny (e.g. "Bash(git:*) Edit")').option("--mcp-config <configs...>", "Load MCP servers from JSON files or strings (space-separated)").addOption(new Option("--permission-prompt-tool <tool>", "MCP tool to use for permission prompts (only works with --print)").argParser(String).hideHelp()).addOption(new Option("--system-prompt <prompt>", "System prompt to use for the session").argParser(String)).addOption(new Option("--system-prompt-file <file>", "Read system prompt from a file").argParser(String).hideHelp()).addOption(new Option("--append-system-prompt <prompt>", "Append a system prompt to the default system prompt").argParser(String)).addOption(new Option("--append-system-prompt-file <file>", "Read system prompt from a file and append to the default system prompt").argParser(String).hideHelp()).addOption(new Option("--permission-mode <mode>", "Permission mode to use for the session").argParser(String).choices(PERMISSION_MODES)).option("-c, --continue", "Continue the most recent conversation in the current directory", () => true).option("-r, --resume [value]", "Resume a conversation by session ID, or open interactive picker with optional search term", (value) => value || true).option("--fork-session", "When resuming, create a new session ID instead of reusing the original (use with --resume or --continue)", () => true).addOption(new Option("--prefill <text>", "Pre-fill the prompt input with text without submitting it").hideHelp()).addOption(new Option("--deep-link-origin", "Signal that this session was launched from a deep link").hideHelp()).addOption(new Option("--deep-link-repo <slug>", "Repo slug the deep link ?repo= parameter resolved to the current cwd").hideHelp()).addOption(new Option("--deep-link-last-fetch <ms>", "FETCH_HEAD mtime in epoch ms, precomputed by the deep link trampoline").argParser((v) => {
554603
555131
  const n3 = Number(v);
554604
555132
  return Number.isFinite(n3) ? n3 : undefined;
554605
- }).hideHelp()).option("--from-pr [value]", "Resume a session linked to a PR by PR number/URL, or open interactive picker with optional search term", (value) => value || true).option("--no-session-persistence", "Disable session persistence - sessions will not be saved to disk and cannot be resumed (only works with --print)").addOption(new Option("--resume-session-at <message id>", "When resuming, only messages up to and including the assistant message with <message.id> (use with --resume in print mode)").argParser(String).hideHelp()).addOption(new Option("--rewind-files <user-message-id>", "Restore files to state at the specified user message and exit (requires --resume)").hideHelp()).option("--model <model>", `Model for the current session. Use a model from the active provider (e.g. 'maximo-pandora-3.8-nano' or 'maximo-atlas-preview').`).addOption(new Option("--effort <level>", `Effort level for the current session (minimal, low, medium, high, xhigh, max, ultra)`).argParser((rawValue) => {
555133
+ }).hideHelp()).option("--from-pr [value]", "Resume a session linked to a PR by PR number/URL, or open interactive picker with optional search term", (value) => value || true).option("--no-session-persistence", "Disable session persistence - sessions will not be saved to disk and cannot be resumed (only works with --print)").addOption(new Option("--resume-session-at <message id>", "When resuming, only messages up to and including the assistant message with <message.id> (use with --resume in print mode)").argParser(String).hideHelp()).addOption(new Option("--rewind-files <user-message-id>", "Restore files to state at the specified user message and exit (requires --resume)").hideHelp()).option("--model <model>", `Model for the current session. Use a model from the active provider (e.g. 'maximo-pandora-3.8-nano' or 'maximo-atlas-1.2').`).addOption(new Option("--effort <level>", `Effort level for the current session (minimal, low, medium, high, xhigh, max, ultra)`).argParser((rawValue) => {
554606
555134
  const normalized = rawValue.trim().toLowerCase().replace(/[-_\s]+/g, "").replace(/^extrahigh$/, "xhigh").replace(/^ultra$/, "xhigh").replace(/^maximum$/, "max").replace(/^med$/, "medium");
554607
555135
  const allowed = ["minimal", "low", "medium", "high", "xhigh", "max", "ultra"];
554608
555136
  if (!allowed.includes(normalized)) {
@@ -556188,7 +556716,7 @@ Usage: maximo --remote "your task description"`, () => gracefulShutdown(1));
556188
556716
  pendingHookMessages
556189
556717
  }, renderAndRun);
556190
556718
  }
556191
- }).version("0.1.32 (Maximo Syntax)", "-v, --version", "Output the version number");
556719
+ }).version("0.1.34 (Maximo Syntax)", "-v, --version", "Output the version number");
556192
556720
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
556193
556721
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
556194
556722
  if (canUserConfigureAdvisor()) {
@@ -556727,7 +557255,7 @@ function validateProviderEnvOrExit() {
556727
557255
  async function main2() {
556728
557256
  const args = process.argv.slice(2);
556729
557257
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
556730
- console.log(`${"0.1.32"} (Maximo Syntax)`);
557258
+ console.log(`${"0.1.34"} (Maximo Syntax)`);
556731
557259
  return;
556732
557260
  }
556733
557261
  validateProviderEnvOrExit();
@@ -556804,4 +557332,4 @@ async function main2() {
556804
557332
  }
556805
557333
  main2();
556806
557334
 
556807
- //# debugId=733B749EDC111ACA64756E2164756E21
557335
+ //# debugId=48AE7DC8230AA9A764756E2164756E21