@maximoai/maximo-syntax-cli 0.1.36 → 0.1.37

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 +547 -528
  2. package/package.json +1 -1
package/dist/cli.mjs CHANGED
@@ -124000,7 +124000,7 @@ var init_metadata = __esm(() => {
124000
124000
  isMaximoAiAuth: isMaximoAISubscriber(),
124001
124001
  version: "99.0.0",
124002
124002
  versionBase: getVersionBase(),
124003
- buildTime: "2026-08-15T17:46:38.288Z",
124003
+ buildTime: "2026-08-15T17:55:08.183Z",
124004
124004
  deploymentEnvironment: env3.detectDeploymentEnvironment(),
124005
124005
  ...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
124006
124006
  githubEventName: process.env.GITHUB_EVENT_NAME,
@@ -169873,7 +169873,7 @@ var init_exploreAgent = __esm(() => {
169873
169873
  ],
169874
169874
  source: "built-in",
169875
169875
  baseDir: "built-in",
169876
- model: process.env.USER_TYPE === "ant" ? "inherit" : "haiku",
169876
+ model: "inherit",
169877
169877
  omitMaximoMd: true,
169878
169878
  getSystemPrompt: () => getExploreSystemPrompt()
169879
169879
  };
@@ -170127,7 +170127,7 @@ var init_statuslineSetup = __esm(() => {
170127
170127
  tools: ["Read", "Edit"],
170128
170128
  source: "built-in",
170129
170129
  baseDir: "built-in",
170130
- model: "sonnet",
170130
+ model: "inherit",
170131
170131
  color: "orange",
170132
170132
  getSystemPrompt: () => STATUSLINE_SYSTEM_PROMPT
170133
170133
  };
@@ -263668,486 +263668,6 @@ var init_registerFrontmatterHooks = __esm(() => {
263668
263668
  init_sessionHooks();
263669
263669
  });
263670
263670
 
263671
- // src/utils/model/check1mAccess.ts
263672
- function isExtraUsageEnabled() {
263673
- const reason = getGlobalConfig().cachedExtraUsageDisabledReason;
263674
- if (reason === undefined) {
263675
- return false;
263676
- }
263677
- if (reason === null) {
263678
- return true;
263679
- }
263680
- switch (reason) {
263681
- case "out_of_credits":
263682
- return true;
263683
- case "overage_not_provisioned":
263684
- case "org_level_disabled":
263685
- case "org_level_disabled_until":
263686
- case "seat_tier_level_disabled":
263687
- case "member_level_disabled":
263688
- case "seat_tier_zero_credit_limit":
263689
- case "group_zero_credit_limit":
263690
- case "member_zero_credit_limit":
263691
- case "org_service_level_disabled":
263692
- case "org_service_zero_credit_limit":
263693
- case "no_limits_configured":
263694
- case "unknown":
263695
- return false;
263696
- default:
263697
- return false;
263698
- }
263699
- }
263700
- function checkOpus1mAccess() {
263701
- if (is1mContextDisabled()) {
263702
- return false;
263703
- }
263704
- if (isMaximoAISubscriber()) {
263705
- return isExtraUsageEnabled();
263706
- }
263707
- return true;
263708
- }
263709
- function checkSonnet1mAccess() {
263710
- if (is1mContextDisabled()) {
263711
- return false;
263712
- }
263713
- if (isMaximoAISubscriber()) {
263714
- return isExtraUsageEnabled();
263715
- }
263716
- return true;
263717
- }
263718
- var init_check1mAccess = __esm(() => {
263719
- init_auth2();
263720
- init_config2();
263721
- init_context();
263722
- });
263723
-
263724
- // src/utils/model/modelOptions.ts
263725
- function getDefaultOptionForUser(fastMode = false) {
263726
- if (process.env.USER_TYPE === "ant") {
263727
- const currentModel = renderDefaultModelSetting(getDefaultMainLoopModelSetting());
263728
- return {
263729
- value: null,
263730
- label: "Default (recommended)",
263731
- description: `Use the default model for Ants (currently ${currentModel})`,
263732
- descriptionForModel: `Default model (currently ${currentModel})`
263733
- };
263734
- }
263735
- if (isMaximoAISubscriber()) {
263736
- return {
263737
- value: null,
263738
- label: "Default (recommended)",
263739
- description: getMaximoAiUserDefaultModelDescription(fastMode)
263740
- };
263741
- }
263742
- const is3P = getAPIProvider() !== "firstParty";
263743
- return {
263744
- value: null,
263745
- label: "Default (recommended)",
263746
- description: `Use the default model (currently ${renderDefaultModelSetting(getDefaultMainLoopModelSetting())})${is3P ? "" : ` · ${formatModelPricing(COST_TIER_3_15)}`}`
263747
- };
263748
- }
263749
- function getCustomSonnetOption() {
263750
- const is3P = getAPIProvider() !== "firstParty";
263751
- const customSonnetModel = process.env.ANTHROPIC_DEFAULT_SONNET_MODEL;
263752
- if (is3P && customSonnetModel) {
263753
- const is1m = has1mContext(customSonnetModel);
263754
- return {
263755
- value: "sonnet",
263756
- label: process.env.ANTHROPIC_DEFAULT_SONNET_MODEL_NAME ?? customSonnetModel,
263757
- description: process.env.ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION ?? `Custom Sonnet model${is1m ? " (1M context)" : ""}`,
263758
- descriptionForModel: `${process.env.ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION ?? `Custom Sonnet model${is1m ? " with 1M context" : ""}`} (${customSonnetModel})`
263759
- };
263760
- }
263761
- }
263762
- function getSonnet46Option() {
263763
- const is3P = getAPIProvider() !== "firstParty";
263764
- return {
263765
- value: is3P ? getModelStrings2().sonnet46 : "sonnet",
263766
- label: "Sonnet",
263767
- description: `Sonnet 4.6 · Best for everyday tasks${is3P ? "" : ` · ${formatModelPricing(COST_TIER_3_15)}`}`,
263768
- descriptionForModel: "Sonnet 4.6 - best for everyday tasks. Generally recommended for most coding tasks"
263769
- };
263770
- }
263771
- function getCustomOpusOption() {
263772
- const is3P = getAPIProvider() !== "firstParty";
263773
- const customOpusModel = process.env.ANTHROPIC_DEFAULT_OPUS_MODEL;
263774
- if (is3P && customOpusModel) {
263775
- const is1m = has1mContext(customOpusModel);
263776
- return {
263777
- value: "opus",
263778
- label: process.env.ANTHROPIC_DEFAULT_OPUS_MODEL_NAME ?? customOpusModel,
263779
- description: process.env.ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION ?? `Custom Opus model${is1m ? " (1M context)" : ""}`,
263780
- descriptionForModel: `${process.env.ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION ?? `Custom Opus model${is1m ? " with 1M context" : ""}`} (${customOpusModel})`
263781
- };
263782
- }
263783
- }
263784
- function getOpus41Option() {
263785
- return {
263786
- value: "opus",
263787
- label: "Opus 4.1",
263788
- description: `Opus 4.1 · Legacy`,
263789
- descriptionForModel: "Opus 4.1 - legacy version"
263790
- };
263791
- }
263792
- function getOpus46Option(fastMode = false) {
263793
- const is3P = getAPIProvider() !== "firstParty";
263794
- return {
263795
- value: is3P ? getModelStrings2().opus46 : "opus",
263796
- label: "Opus",
263797
- description: `Opus 4.6 · Most capable for complex work${getOpus46PricingSuffix(fastMode)}`,
263798
- descriptionForModel: "Opus 4.6 - most capable for complex work"
263799
- };
263800
- }
263801
- function getSonnet46_1MOption() {
263802
- const is3P = getAPIProvider() !== "firstParty";
263803
- return {
263804
- value: is3P ? getModelStrings2().sonnet46 + "[1m]" : "sonnet[1m]",
263805
- label: "Sonnet (1M context)",
263806
- description: `Sonnet 4.6 for long sessions${is3P ? "" : ` · ${formatModelPricing(COST_TIER_3_15)}`}`,
263807
- descriptionForModel: "Sonnet 4.6 with 1M context window - for long sessions with large codebases"
263808
- };
263809
- }
263810
- function getOpus46_1MOption(fastMode = false) {
263811
- const is3P = getAPIProvider() !== "firstParty";
263812
- return {
263813
- value: is3P ? getModelStrings2().opus46 + "[1m]" : "opus[1m]",
263814
- label: "Opus (1M context)",
263815
- description: `Opus 4.6 for long sessions${getOpus46PricingSuffix(fastMode)}`,
263816
- descriptionForModel: "Opus 4.6 with 1M context window - for long sessions with large codebases"
263817
- };
263818
- }
263819
- function getCustomHaikuOption() {
263820
- const is3P = getAPIProvider() !== "firstParty";
263821
- const customHaikuModel = process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL;
263822
- if (is3P && customHaikuModel) {
263823
- return {
263824
- value: "haiku",
263825
- label: process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME ?? customHaikuModel,
263826
- description: process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION ?? "Custom Haiku model",
263827
- descriptionForModel: `${process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION ?? "Custom Haiku model"} (${customHaikuModel})`
263828
- };
263829
- }
263830
- }
263831
- function getHaiku45Option() {
263832
- const is3P = getAPIProvider() !== "firstParty";
263833
- return {
263834
- value: "haiku",
263835
- label: "Haiku",
263836
- description: `Haiku 4.5 · Fastest for quick answers${is3P ? "" : ` · ${formatModelPricing(COST_HAIKU_45)}`}`,
263837
- descriptionForModel: "Haiku 4.5 - fastest for quick answers. Lower cost but less capable than Sonnet 4.6."
263838
- };
263839
- }
263840
- function getHaiku35Option() {
263841
- const is3P = getAPIProvider() !== "firstParty";
263842
- return {
263843
- value: "haiku",
263844
- label: "Haiku",
263845
- description: `Haiku 3.5 for simple tasks${is3P ? "" : ` · ${formatModelPricing(COST_HAIKU_35)}`}`,
263846
- descriptionForModel: "Haiku 3.5 - faster and lower cost, but less capable than Sonnet. Use for simple tasks."
263847
- };
263848
- }
263849
- function getHaikuOption() {
263850
- const haikuModel = getDefaultHaikuModel();
263851
- return haikuModel === getModelStrings2().haiku45 ? getHaiku45Option() : getHaiku35Option();
263852
- }
263853
- function getMaxOpusOption(fastMode = false) {
263854
- return {
263855
- value: "opus",
263856
- label: "Opus",
263857
- description: `Opus 4.6 · Most capable for complex work${fastMode ? getOpus46PricingSuffix(true) : ""}`
263858
- };
263859
- }
263860
- function getMaxSonnet46_1MOption() {
263861
- const is3P = getAPIProvider() !== "firstParty";
263862
- const billingInfo = isMaximoAISubscriber() ? " · Billed as extra usage" : "";
263863
- return {
263864
- value: "sonnet[1m]",
263865
- label: "Sonnet (1M context)",
263866
- description: `Sonnet 4.6 with 1M context${billingInfo}${is3P ? "" : ` · ${formatModelPricing(COST_TIER_3_15)}`}`
263867
- };
263868
- }
263869
- function getMaxOpus46_1MOption(fastMode = false) {
263870
- const billingInfo = isMaximoAISubscriber() ? " · Billed as extra usage" : "";
263871
- return {
263872
- value: "opus[1m]",
263873
- label: "Opus (1M context)",
263874
- description: `Opus 4.6 with 1M context${billingInfo}${getOpus46PricingSuffix(fastMode)}`
263875
- };
263876
- }
263877
- function getMergedOpus1MOption(fastMode = false) {
263878
- const is3P = getAPIProvider() !== "firstParty";
263879
- return {
263880
- value: is3P ? getModelStrings2().opus46 + "[1m]" : "opus[1m]",
263881
- label: "Opus (1M context)",
263882
- description: `Opus 4.6 with 1M context · Most capable for complex work${!is3P && fastMode ? getOpus46PricingSuffix(fastMode) : ""}`,
263883
- descriptionForModel: "Opus 4.6 with 1M context - most capable for complex work"
263884
- };
263885
- }
263886
- function getOpusPlanOption() {
263887
- return {
263888
- value: "opusplan",
263889
- label: "Opus Plan Mode",
263890
- description: "Use Opus 4.6 in plan mode, Sonnet 4.6 otherwise"
263891
- };
263892
- }
263893
- function getCodexPlanOption() {
263894
- return {
263895
- value: "codexplan",
263896
- label: "Codex Plan",
263897
- description: "GPT-5.4 on the Codex backend with high reasoning"
263898
- };
263899
- }
263900
- function getCodexSparkOption() {
263901
- return {
263902
- value: "codexspark",
263903
- label: "Codex Spark",
263904
- description: "GPT-5.3 Codex Spark on the Codex backend for fast tool loops"
263905
- };
263906
- }
263907
- function getModelOptionsBase(fastMode = false) {
263908
- if (process.env.USER_TYPE === "ant") {
263909
- const antModelOptions = getAntModels().map((m) => ({
263910
- value: m.alias,
263911
- label: m.label,
263912
- description: m.description ?? `[ANT-ONLY] ${m.label} (${m.model})`
263913
- }));
263914
- return [
263915
- getDefaultOptionForUser(),
263916
- ...antModelOptions,
263917
- getMergedOpus1MOption(fastMode),
263918
- getSonnet46Option(),
263919
- getSonnet46_1MOption(),
263920
- getHaiku45Option()
263921
- ];
263922
- }
263923
- if (isMaximoAISubscriber()) {
263924
- if (isMaxSubscriber() || isTeamPremiumSubscriber()) {
263925
- const premiumOptions = [getDefaultOptionForUser(fastMode)];
263926
- if (!isOpus1mMergeEnabled() && checkOpus1mAccess()) {
263927
- premiumOptions.push(getMaxOpus46_1MOption(fastMode));
263928
- }
263929
- premiumOptions.push(MaxSonnet46Option);
263930
- if (checkSonnet1mAccess()) {
263931
- premiumOptions.push(getMaxSonnet46_1MOption());
263932
- }
263933
- premiumOptions.push(MaxHaiku45Option);
263934
- return premiumOptions;
263935
- }
263936
- const standardOptions = [getDefaultOptionForUser(fastMode)];
263937
- if (checkSonnet1mAccess()) {
263938
- standardOptions.push(getMaxSonnet46_1MOption());
263939
- }
263940
- if (isOpus1mMergeEnabled()) {
263941
- standardOptions.push(getMergedOpus1MOption(fastMode));
263942
- } else {
263943
- standardOptions.push(getMaxOpusOption(fastMode));
263944
- if (checkOpus1mAccess()) {
263945
- standardOptions.push(getMaxOpus46_1MOption(fastMode));
263946
- }
263947
- }
263948
- standardOptions.push(MaxHaiku45Option);
263949
- return standardOptions;
263950
- }
263951
- if (getAPIProvider() === "firstParty") {
263952
- const payg1POptions = [getDefaultOptionForUser(fastMode)];
263953
- if (checkSonnet1mAccess()) {
263954
- payg1POptions.push(getSonnet46_1MOption());
263955
- }
263956
- if (isOpus1mMergeEnabled()) {
263957
- payg1POptions.push(getMergedOpus1MOption(fastMode));
263958
- } else {
263959
- payg1POptions.push(getOpus46Option(fastMode));
263960
- if (checkOpus1mAccess()) {
263961
- payg1POptions.push(getOpus46_1MOption(fastMode));
263962
- }
263963
- }
263964
- payg1POptions.push(getHaiku45Option());
263965
- return payg1POptions;
263966
- }
263967
- const payg3pOptions = [getDefaultOptionForUser(fastMode)];
263968
- if (getAPIProvider() === "openai") {
263969
- payg3pOptions.push(getCodexPlanOption(), getCodexSparkOption());
263970
- }
263971
- const customSonnet = getCustomSonnetOption();
263972
- if (customSonnet !== undefined) {
263973
- payg3pOptions.push(customSonnet);
263974
- } else {
263975
- payg3pOptions.push(getSonnet46Option());
263976
- if (checkSonnet1mAccess()) {
263977
- payg3pOptions.push(getSonnet46_1MOption());
263978
- }
263979
- }
263980
- const customOpus = getCustomOpusOption();
263981
- if (customOpus !== undefined) {
263982
- payg3pOptions.push(customOpus);
263983
- } else {
263984
- payg3pOptions.push(getOpus41Option());
263985
- payg3pOptions.push(getOpus46Option(fastMode));
263986
- if (checkOpus1mAccess()) {
263987
- payg3pOptions.push(getOpus46_1MOption(fastMode));
263988
- }
263989
- }
263990
- const customHaiku = getCustomHaikuOption();
263991
- if (customHaiku !== undefined) {
263992
- payg3pOptions.push(customHaiku);
263993
- } else {
263994
- payg3pOptions.push(getHaikuOption());
263995
- }
263996
- return payg3pOptions;
263997
- }
263998
- function getModelFamilyInfo(model) {
263999
- const canonical = getCanonicalName(model);
264000
- 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")) {
264001
- const currentName = getMarketingNameForModel(getDefaultSonnetModel());
264002
- if (currentName) {
264003
- return { alias: "Sonnet", currentVersionName: currentName };
264004
- }
264005
- }
264006
- if (canonical.includes("claude-opus-4")) {
264007
- const currentName = getMarketingNameForModel(getDefaultOpusModel());
264008
- if (currentName) {
264009
- return { alias: "Opus", currentVersionName: currentName };
264010
- }
264011
- }
264012
- if (canonical.includes("claude-haiku") || canonical.includes("claude-3-5-haiku")) {
264013
- const currentName = getMarketingNameForModel(getDefaultHaikuModel());
264014
- if (currentName) {
264015
- return { alias: "Haiku", currentVersionName: currentName };
264016
- }
264017
- }
264018
- return null;
264019
- }
264020
- function getKnownModelOption(model) {
264021
- const marketingName = getMarketingNameForModel(model);
264022
- if (!marketingName)
264023
- return null;
264024
- const familyInfo = getModelFamilyInfo(model);
264025
- if (!familyInfo) {
264026
- return {
264027
- value: model,
264028
- label: marketingName,
264029
- description: model
264030
- };
264031
- }
264032
- if (marketingName !== familyInfo.currentVersionName) {
264033
- return {
264034
- value: model,
264035
- label: marketingName,
264036
- description: `Newer version available · select ${familyInfo.alias} for ${familyInfo.currentVersionName}`
264037
- };
264038
- }
264039
- return {
264040
- value: model,
264041
- label: marketingName,
264042
- description: model
264043
- };
264044
- }
264045
- async function getModelOptionsAsync(fastMode = false) {
264046
- const maximoOptions = await getMaximoModelOptions();
264047
- if (maximoOptions) {
264048
- return filterModelOptionsByAllowlist([
264049
- getDefaultOptionForUser(fastMode),
264050
- ...maximoOptions
264051
- ]);
264052
- }
264053
- return getModelOptionsBase(fastMode);
264054
- }
264055
- function getModelOptions(fastMode = false) {
264056
- const maximoOptions = getCachedMaximoModelOptions();
264057
- if (maximoOptions) {
264058
- return filterModelOptionsByAllowlist([
264059
- getDefaultOptionForUser(fastMode),
264060
- ...maximoOptions
264061
- ]);
264062
- }
264063
- const options2 = getModelOptionsBase(fastMode);
264064
- const envCustomModel = process.env.ANTHROPIC_CUSTOM_MODEL_OPTION;
264065
- if (envCustomModel && !options2.some((existing) => existing.value === envCustomModel)) {
264066
- options2.push({
264067
- value: envCustomModel,
264068
- label: process.env.ANTHROPIC_CUSTOM_MODEL_OPTION_NAME ?? envCustomModel,
264069
- description: process.env.ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION ?? `Custom model (${envCustomModel})`
264070
- });
264071
- }
264072
- for (const opt of getGlobalConfig().additionalModelOptionsCache ?? []) {
264073
- if (!options2.some((existing) => existing.value === opt.value)) {
264074
- options2.push(opt);
264075
- }
264076
- }
264077
- let customModel = null;
264078
- const currentMainLoopModel = getUserSpecifiedModelSetting();
264079
- const initialMainLoopModel = getInitialMainLoopModel();
264080
- if (currentMainLoopModel !== undefined && currentMainLoopModel !== null) {
264081
- customModel = currentMainLoopModel;
264082
- } else if (initialMainLoopModel !== null) {
264083
- customModel = initialMainLoopModel;
264084
- }
264085
- if (customModel === null || options2.some((opt) => opt.value === customModel)) {
264086
- return filterModelOptionsByAllowlist(options2);
264087
- } else if (customModel === "opusplan") {
264088
- return filterModelOptionsByAllowlist([...options2, getOpusPlanOption()]);
264089
- } else if (customModel === "codexplan") {
264090
- return filterModelOptionsByAllowlist([...options2, getCodexPlanOption()]);
264091
- } else if (customModel === "codexspark") {
264092
- return filterModelOptionsByAllowlist([...options2, getCodexSparkOption()]);
264093
- } else if (customModel === "opus" && getAPIProvider() === "firstParty") {
264094
- return filterModelOptionsByAllowlist([
264095
- ...options2,
264096
- getMaxOpusOption(fastMode)
264097
- ]);
264098
- } else if (customModel === "opus[1m]" && getAPIProvider() === "firstParty") {
264099
- return filterModelOptionsByAllowlist([
264100
- ...options2,
264101
- getMergedOpus1MOption(fastMode)
264102
- ]);
264103
- } else {
264104
- const knownOption = getKnownModelOption(customModel);
264105
- if (knownOption) {
264106
- options2.push(knownOption);
264107
- } else {
264108
- options2.push({
264109
- value: customModel,
264110
- label: customModel,
264111
- description: "Custom model"
264112
- });
264113
- }
264114
- return filterModelOptionsByAllowlist(options2);
264115
- }
264116
- }
264117
- function filterModelOptionsByAllowlist(options2) {
264118
- const settings = getSettings_DEPRECATED() || {};
264119
- if (!settings.availableModels) {
264120
- return options2;
264121
- }
264122
- return options2.filter((opt) => opt.value === null || opt.value !== null && isModelAllowed(opt.value));
264123
- }
264124
- var MaxSonnet46Option, MaxHaiku45Option;
264125
- var init_modelOptions = __esm(() => {
264126
- init_state();
264127
- init_antModels();
264128
- init_auth2();
264129
- init_modelStrings();
264130
- init_modelCost();
264131
- init_settings2();
264132
- init_check1mAccess();
264133
- init_providers();
264134
- init_modelAllowlist();
264135
- init_model();
264136
- init_context();
264137
- init_config2();
264138
- init_maximoModels();
264139
- MaxSonnet46Option = {
264140
- value: "sonnet",
264141
- label: "Sonnet",
264142
- description: "Sonnet 4.6 · Best for everyday tasks"
264143
- };
264144
- MaxHaiku45Option = {
264145
- value: "haiku",
264146
- label: "Haiku",
264147
- description: "Haiku 4.5 · Fastest for quick answers"
264148
- };
264149
- });
264150
-
264151
263671
  // src/utils/model/agent.ts
264152
263672
  function getDefaultSubagentModel() {
264153
263673
  return "inherit";
@@ -264222,7 +263742,11 @@ function getAgentModelOptions() {
264222
263742
  ];
264223
263743
  const seen = new Set(["inherit"]);
264224
263744
  try {
264225
- for (const option of getModelOptions()) {
263745
+ const catalog = [
263746
+ ...getCachedMaximoModelOptions() ?? [],
263747
+ ...getGlobalConfig().additionalModelOptionsCache ?? []
263748
+ ];
263749
+ for (const option of catalog) {
264226
263750
  if (typeof option.value !== "string" || !option.value.trim())
264227
263751
  continue;
264228
263752
  if (seen.has(option.value))
@@ -264230,32 +263754,11 @@ function getAgentModelOptions() {
264230
263754
  seen.add(option.value);
264231
263755
  options2.push({
264232
263756
  value: option.value,
264233
- label: option.label,
264234
- description: option.description
263757
+ label: option.label || option.value,
263758
+ description: option.description || "From the logged-in account catalog"
264235
263759
  });
264236
263760
  }
264237
263761
  } catch {}
264238
- const aliasFallbacks = [
264239
- {
264240
- value: "sonnet",
264241
- label: "Sonnet",
264242
- description: "Balanced performance - best for most agents"
264243
- },
264244
- {
264245
- value: "opus",
264246
- label: "Opus",
264247
- description: "Most capable for complex reasoning tasks"
264248
- },
264249
- {
264250
- value: "haiku",
264251
- label: "Haiku",
264252
- description: "Fast and efficient for simple tasks"
264253
- }
264254
- ];
264255
- for (const alias of aliasFallbacks) {
264256
- if (!seen.has(alias.value))
264257
- options2.push(alias);
264258
- }
264259
263762
  return options2;
264260
263763
  }
264261
263764
  var AGENT_MODEL_OPTIONS;
@@ -264264,7 +263767,8 @@ var init_agent = __esm(() => {
264264
263767
  init_aliases();
264265
263768
  init_bedrock();
264266
263769
  init_model();
264267
- init_modelOptions();
263770
+ init_maximoModels();
263771
+ init_config2();
264268
263772
  init_providers();
264269
263773
  AGENT_MODEL_OPTIONS = [...MODEL_ALIASES, "inherit"];
264270
263774
  });
@@ -267730,6 +267234,59 @@ var init_AssistantRedactedThinkingMessage = __esm(() => {
267730
267234
  jsx_runtime48 = __toESM(require_jsx_runtime(), 1);
267731
267235
  });
267732
267236
 
267237
+ // src/utils/model/check1mAccess.ts
267238
+ function isExtraUsageEnabled() {
267239
+ const reason = getGlobalConfig().cachedExtraUsageDisabledReason;
267240
+ if (reason === undefined) {
267241
+ return false;
267242
+ }
267243
+ if (reason === null) {
267244
+ return true;
267245
+ }
267246
+ switch (reason) {
267247
+ case "out_of_credits":
267248
+ return true;
267249
+ case "overage_not_provisioned":
267250
+ case "org_level_disabled":
267251
+ case "org_level_disabled_until":
267252
+ case "seat_tier_level_disabled":
267253
+ case "member_level_disabled":
267254
+ case "seat_tier_zero_credit_limit":
267255
+ case "group_zero_credit_limit":
267256
+ case "member_zero_credit_limit":
267257
+ case "org_service_level_disabled":
267258
+ case "org_service_zero_credit_limit":
267259
+ case "no_limits_configured":
267260
+ case "unknown":
267261
+ return false;
267262
+ default:
267263
+ return false;
267264
+ }
267265
+ }
267266
+ function checkOpus1mAccess() {
267267
+ if (is1mContextDisabled()) {
267268
+ return false;
267269
+ }
267270
+ if (isMaximoAISubscriber()) {
267271
+ return isExtraUsageEnabled();
267272
+ }
267273
+ return true;
267274
+ }
267275
+ function checkSonnet1mAccess() {
267276
+ if (is1mContextDisabled()) {
267277
+ return false;
267278
+ }
267279
+ if (isMaximoAISubscriber()) {
267280
+ return isExtraUsageEnabled();
267281
+ }
267282
+ return true;
267283
+ }
267284
+ var init_check1mAccess = __esm(() => {
267285
+ init_auth2();
267286
+ init_config2();
267287
+ init_context();
267288
+ });
267289
+
267733
267290
  // src/utils/model/contextWindowUpgradeCheck.ts
267734
267291
  function getAvailableUpgrade() {
267735
267292
  const currentModelSetting = getUserSpecifiedModelSetting();
@@ -277217,7 +276774,7 @@ import { access as access3, writeFile as writeFile13 } from "fs/promises";
277217
276774
  import { homedir as homedir22 } from "os";
277218
276775
  import { join as join65 } from "path";
277219
276776
  function getCurrentRealVersion() {
277220
- return "0.1.36";
276777
+ return "0.1.37";
277221
276778
  }
277222
276779
  async function getRolloutConfig() {
277223
276780
  try {
@@ -350956,6 +350513,433 @@ var init_ExitWorktreeTool = __esm(() => {
350956
350513
  // src/tools/ConfigTool/constants.ts
350957
350514
  var CONFIG_TOOL_NAME = "Config";
350958
350515
 
350516
+ // src/utils/model/modelOptions.ts
350517
+ function getDefaultOptionForUser(fastMode = false) {
350518
+ if (process.env.USER_TYPE === "ant") {
350519
+ const currentModel = renderDefaultModelSetting(getDefaultMainLoopModelSetting());
350520
+ return {
350521
+ value: null,
350522
+ label: "Default (recommended)",
350523
+ description: `Use the default model for Ants (currently ${currentModel})`,
350524
+ descriptionForModel: `Default model (currently ${currentModel})`
350525
+ };
350526
+ }
350527
+ if (isMaximoAISubscriber()) {
350528
+ return {
350529
+ value: null,
350530
+ label: "Default (recommended)",
350531
+ description: getMaximoAiUserDefaultModelDescription(fastMode)
350532
+ };
350533
+ }
350534
+ const is3P = getAPIProvider() !== "firstParty";
350535
+ return {
350536
+ value: null,
350537
+ label: "Default (recommended)",
350538
+ description: `Use the default model (currently ${renderDefaultModelSetting(getDefaultMainLoopModelSetting())})${is3P ? "" : ` · ${formatModelPricing(COST_TIER_3_15)}`}`
350539
+ };
350540
+ }
350541
+ function getCustomSonnetOption() {
350542
+ const is3P = getAPIProvider() !== "firstParty";
350543
+ const customSonnetModel = process.env.ANTHROPIC_DEFAULT_SONNET_MODEL;
350544
+ if (is3P && customSonnetModel) {
350545
+ const is1m = has1mContext(customSonnetModel);
350546
+ return {
350547
+ value: "sonnet",
350548
+ label: process.env.ANTHROPIC_DEFAULT_SONNET_MODEL_NAME ?? customSonnetModel,
350549
+ description: process.env.ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION ?? `Custom Sonnet model${is1m ? " (1M context)" : ""}`,
350550
+ descriptionForModel: `${process.env.ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION ?? `Custom Sonnet model${is1m ? " with 1M context" : ""}`} (${customSonnetModel})`
350551
+ };
350552
+ }
350553
+ }
350554
+ function getSonnet46Option() {
350555
+ const is3P = getAPIProvider() !== "firstParty";
350556
+ return {
350557
+ value: is3P ? getModelStrings2().sonnet46 : "sonnet",
350558
+ label: "Sonnet",
350559
+ description: `Sonnet 4.6 · Best for everyday tasks${is3P ? "" : ` · ${formatModelPricing(COST_TIER_3_15)}`}`,
350560
+ descriptionForModel: "Sonnet 4.6 - best for everyday tasks. Generally recommended for most coding tasks"
350561
+ };
350562
+ }
350563
+ function getCustomOpusOption() {
350564
+ const is3P = getAPIProvider() !== "firstParty";
350565
+ const customOpusModel = process.env.ANTHROPIC_DEFAULT_OPUS_MODEL;
350566
+ if (is3P && customOpusModel) {
350567
+ const is1m = has1mContext(customOpusModel);
350568
+ return {
350569
+ value: "opus",
350570
+ label: process.env.ANTHROPIC_DEFAULT_OPUS_MODEL_NAME ?? customOpusModel,
350571
+ description: process.env.ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION ?? `Custom Opus model${is1m ? " (1M context)" : ""}`,
350572
+ descriptionForModel: `${process.env.ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION ?? `Custom Opus model${is1m ? " with 1M context" : ""}`} (${customOpusModel})`
350573
+ };
350574
+ }
350575
+ }
350576
+ function getOpus41Option() {
350577
+ return {
350578
+ value: "opus",
350579
+ label: "Opus 4.1",
350580
+ description: `Opus 4.1 · Legacy`,
350581
+ descriptionForModel: "Opus 4.1 - legacy version"
350582
+ };
350583
+ }
350584
+ function getOpus46Option(fastMode = false) {
350585
+ const is3P = getAPIProvider() !== "firstParty";
350586
+ return {
350587
+ value: is3P ? getModelStrings2().opus46 : "opus",
350588
+ label: "Opus",
350589
+ description: `Opus 4.6 · Most capable for complex work${getOpus46PricingSuffix(fastMode)}`,
350590
+ descriptionForModel: "Opus 4.6 - most capable for complex work"
350591
+ };
350592
+ }
350593
+ function getSonnet46_1MOption() {
350594
+ const is3P = getAPIProvider() !== "firstParty";
350595
+ return {
350596
+ value: is3P ? getModelStrings2().sonnet46 + "[1m]" : "sonnet[1m]",
350597
+ label: "Sonnet (1M context)",
350598
+ description: `Sonnet 4.6 for long sessions${is3P ? "" : ` · ${formatModelPricing(COST_TIER_3_15)}`}`,
350599
+ descriptionForModel: "Sonnet 4.6 with 1M context window - for long sessions with large codebases"
350600
+ };
350601
+ }
350602
+ function getOpus46_1MOption(fastMode = false) {
350603
+ const is3P = getAPIProvider() !== "firstParty";
350604
+ return {
350605
+ value: is3P ? getModelStrings2().opus46 + "[1m]" : "opus[1m]",
350606
+ label: "Opus (1M context)",
350607
+ description: `Opus 4.6 for long sessions${getOpus46PricingSuffix(fastMode)}`,
350608
+ descriptionForModel: "Opus 4.6 with 1M context window - for long sessions with large codebases"
350609
+ };
350610
+ }
350611
+ function getCustomHaikuOption() {
350612
+ const is3P = getAPIProvider() !== "firstParty";
350613
+ const customHaikuModel = process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL;
350614
+ if (is3P && customHaikuModel) {
350615
+ return {
350616
+ value: "haiku",
350617
+ label: process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME ?? customHaikuModel,
350618
+ description: process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION ?? "Custom Haiku model",
350619
+ descriptionForModel: `${process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION ?? "Custom Haiku model"} (${customHaikuModel})`
350620
+ };
350621
+ }
350622
+ }
350623
+ function getHaiku45Option() {
350624
+ const is3P = getAPIProvider() !== "firstParty";
350625
+ return {
350626
+ value: "haiku",
350627
+ label: "Haiku",
350628
+ description: `Haiku 4.5 · Fastest for quick answers${is3P ? "" : ` · ${formatModelPricing(COST_HAIKU_45)}`}`,
350629
+ descriptionForModel: "Haiku 4.5 - fastest for quick answers. Lower cost but less capable than Sonnet 4.6."
350630
+ };
350631
+ }
350632
+ function getHaiku35Option() {
350633
+ const is3P = getAPIProvider() !== "firstParty";
350634
+ return {
350635
+ value: "haiku",
350636
+ label: "Haiku",
350637
+ description: `Haiku 3.5 for simple tasks${is3P ? "" : ` · ${formatModelPricing(COST_HAIKU_35)}`}`,
350638
+ descriptionForModel: "Haiku 3.5 - faster and lower cost, but less capable than Sonnet. Use for simple tasks."
350639
+ };
350640
+ }
350641
+ function getHaikuOption() {
350642
+ const haikuModel = getDefaultHaikuModel();
350643
+ return haikuModel === getModelStrings2().haiku45 ? getHaiku45Option() : getHaiku35Option();
350644
+ }
350645
+ function getMaxOpusOption(fastMode = false) {
350646
+ return {
350647
+ value: "opus",
350648
+ label: "Opus",
350649
+ description: `Opus 4.6 · Most capable for complex work${fastMode ? getOpus46PricingSuffix(true) : ""}`
350650
+ };
350651
+ }
350652
+ function getMaxSonnet46_1MOption() {
350653
+ const is3P = getAPIProvider() !== "firstParty";
350654
+ const billingInfo = isMaximoAISubscriber() ? " · Billed as extra usage" : "";
350655
+ return {
350656
+ value: "sonnet[1m]",
350657
+ label: "Sonnet (1M context)",
350658
+ description: `Sonnet 4.6 with 1M context${billingInfo}${is3P ? "" : ` · ${formatModelPricing(COST_TIER_3_15)}`}`
350659
+ };
350660
+ }
350661
+ function getMaxOpus46_1MOption(fastMode = false) {
350662
+ const billingInfo = isMaximoAISubscriber() ? " · Billed as extra usage" : "";
350663
+ return {
350664
+ value: "opus[1m]",
350665
+ label: "Opus (1M context)",
350666
+ description: `Opus 4.6 with 1M context${billingInfo}${getOpus46PricingSuffix(fastMode)}`
350667
+ };
350668
+ }
350669
+ function getMergedOpus1MOption(fastMode = false) {
350670
+ const is3P = getAPIProvider() !== "firstParty";
350671
+ return {
350672
+ value: is3P ? getModelStrings2().opus46 + "[1m]" : "opus[1m]",
350673
+ label: "Opus (1M context)",
350674
+ description: `Opus 4.6 with 1M context · Most capable for complex work${!is3P && fastMode ? getOpus46PricingSuffix(fastMode) : ""}`,
350675
+ descriptionForModel: "Opus 4.6 with 1M context - most capable for complex work"
350676
+ };
350677
+ }
350678
+ function getOpusPlanOption() {
350679
+ return {
350680
+ value: "opusplan",
350681
+ label: "Opus Plan Mode",
350682
+ description: "Use Opus 4.6 in plan mode, Sonnet 4.6 otherwise"
350683
+ };
350684
+ }
350685
+ function getCodexPlanOption() {
350686
+ return {
350687
+ value: "codexplan",
350688
+ label: "Codex Plan",
350689
+ description: "GPT-5.4 on the Codex backend with high reasoning"
350690
+ };
350691
+ }
350692
+ function getCodexSparkOption() {
350693
+ return {
350694
+ value: "codexspark",
350695
+ label: "Codex Spark",
350696
+ description: "GPT-5.3 Codex Spark on the Codex backend for fast tool loops"
350697
+ };
350698
+ }
350699
+ function getModelOptionsBase(fastMode = false) {
350700
+ if (process.env.USER_TYPE === "ant") {
350701
+ const antModelOptions = getAntModels().map((m) => ({
350702
+ value: m.alias,
350703
+ label: m.label,
350704
+ description: m.description ?? `[ANT-ONLY] ${m.label} (${m.model})`
350705
+ }));
350706
+ return [
350707
+ getDefaultOptionForUser(),
350708
+ ...antModelOptions,
350709
+ getMergedOpus1MOption(fastMode),
350710
+ getSonnet46Option(),
350711
+ getSonnet46_1MOption(),
350712
+ getHaiku45Option()
350713
+ ];
350714
+ }
350715
+ if (isMaximoAISubscriber()) {
350716
+ if (isMaxSubscriber() || isTeamPremiumSubscriber()) {
350717
+ const premiumOptions = [getDefaultOptionForUser(fastMode)];
350718
+ if (!isOpus1mMergeEnabled() && checkOpus1mAccess()) {
350719
+ premiumOptions.push(getMaxOpus46_1MOption(fastMode));
350720
+ }
350721
+ premiumOptions.push(MaxSonnet46Option);
350722
+ if (checkSonnet1mAccess()) {
350723
+ premiumOptions.push(getMaxSonnet46_1MOption());
350724
+ }
350725
+ premiumOptions.push(MaxHaiku45Option);
350726
+ return premiumOptions;
350727
+ }
350728
+ const standardOptions = [getDefaultOptionForUser(fastMode)];
350729
+ if (checkSonnet1mAccess()) {
350730
+ standardOptions.push(getMaxSonnet46_1MOption());
350731
+ }
350732
+ if (isOpus1mMergeEnabled()) {
350733
+ standardOptions.push(getMergedOpus1MOption(fastMode));
350734
+ } else {
350735
+ standardOptions.push(getMaxOpusOption(fastMode));
350736
+ if (checkOpus1mAccess()) {
350737
+ standardOptions.push(getMaxOpus46_1MOption(fastMode));
350738
+ }
350739
+ }
350740
+ standardOptions.push(MaxHaiku45Option);
350741
+ return standardOptions;
350742
+ }
350743
+ if (getAPIProvider() === "firstParty") {
350744
+ const payg1POptions = [getDefaultOptionForUser(fastMode)];
350745
+ if (checkSonnet1mAccess()) {
350746
+ payg1POptions.push(getSonnet46_1MOption());
350747
+ }
350748
+ if (isOpus1mMergeEnabled()) {
350749
+ payg1POptions.push(getMergedOpus1MOption(fastMode));
350750
+ } else {
350751
+ payg1POptions.push(getOpus46Option(fastMode));
350752
+ if (checkOpus1mAccess()) {
350753
+ payg1POptions.push(getOpus46_1MOption(fastMode));
350754
+ }
350755
+ }
350756
+ payg1POptions.push(getHaiku45Option());
350757
+ return payg1POptions;
350758
+ }
350759
+ const payg3pOptions = [getDefaultOptionForUser(fastMode)];
350760
+ if (getAPIProvider() === "openai") {
350761
+ payg3pOptions.push(getCodexPlanOption(), getCodexSparkOption());
350762
+ }
350763
+ const customSonnet = getCustomSonnetOption();
350764
+ if (customSonnet !== undefined) {
350765
+ payg3pOptions.push(customSonnet);
350766
+ } else {
350767
+ payg3pOptions.push(getSonnet46Option());
350768
+ if (checkSonnet1mAccess()) {
350769
+ payg3pOptions.push(getSonnet46_1MOption());
350770
+ }
350771
+ }
350772
+ const customOpus = getCustomOpusOption();
350773
+ if (customOpus !== undefined) {
350774
+ payg3pOptions.push(customOpus);
350775
+ } else {
350776
+ payg3pOptions.push(getOpus41Option());
350777
+ payg3pOptions.push(getOpus46Option(fastMode));
350778
+ if (checkOpus1mAccess()) {
350779
+ payg3pOptions.push(getOpus46_1MOption(fastMode));
350780
+ }
350781
+ }
350782
+ const customHaiku = getCustomHaikuOption();
350783
+ if (customHaiku !== undefined) {
350784
+ payg3pOptions.push(customHaiku);
350785
+ } else {
350786
+ payg3pOptions.push(getHaikuOption());
350787
+ }
350788
+ return payg3pOptions;
350789
+ }
350790
+ function getModelFamilyInfo(model) {
350791
+ const canonical = getCanonicalName(model);
350792
+ 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")) {
350793
+ const currentName = getMarketingNameForModel(getDefaultSonnetModel());
350794
+ if (currentName) {
350795
+ return { alias: "Sonnet", currentVersionName: currentName };
350796
+ }
350797
+ }
350798
+ if (canonical.includes("claude-opus-4")) {
350799
+ const currentName = getMarketingNameForModel(getDefaultOpusModel());
350800
+ if (currentName) {
350801
+ return { alias: "Opus", currentVersionName: currentName };
350802
+ }
350803
+ }
350804
+ if (canonical.includes("claude-haiku") || canonical.includes("claude-3-5-haiku")) {
350805
+ const currentName = getMarketingNameForModel(getDefaultHaikuModel());
350806
+ if (currentName) {
350807
+ return { alias: "Haiku", currentVersionName: currentName };
350808
+ }
350809
+ }
350810
+ return null;
350811
+ }
350812
+ function getKnownModelOption(model) {
350813
+ const marketingName = getMarketingNameForModel(model);
350814
+ if (!marketingName)
350815
+ return null;
350816
+ const familyInfo = getModelFamilyInfo(model);
350817
+ if (!familyInfo) {
350818
+ return {
350819
+ value: model,
350820
+ label: marketingName,
350821
+ description: model
350822
+ };
350823
+ }
350824
+ if (marketingName !== familyInfo.currentVersionName) {
350825
+ return {
350826
+ value: model,
350827
+ label: marketingName,
350828
+ description: `Newer version available · select ${familyInfo.alias} for ${familyInfo.currentVersionName}`
350829
+ };
350830
+ }
350831
+ return {
350832
+ value: model,
350833
+ label: marketingName,
350834
+ description: model
350835
+ };
350836
+ }
350837
+ async function getModelOptionsAsync(fastMode = false) {
350838
+ const maximoOptions = await getMaximoModelOptions();
350839
+ if (maximoOptions) {
350840
+ return filterModelOptionsByAllowlist([
350841
+ getDefaultOptionForUser(fastMode),
350842
+ ...maximoOptions
350843
+ ]);
350844
+ }
350845
+ return getModelOptionsBase(fastMode);
350846
+ }
350847
+ function getModelOptions(fastMode = false) {
350848
+ const maximoOptions = getCachedMaximoModelOptions();
350849
+ if (maximoOptions) {
350850
+ return filterModelOptionsByAllowlist([
350851
+ getDefaultOptionForUser(fastMode),
350852
+ ...maximoOptions
350853
+ ]);
350854
+ }
350855
+ const options2 = getModelOptionsBase(fastMode);
350856
+ const envCustomModel = process.env.ANTHROPIC_CUSTOM_MODEL_OPTION;
350857
+ if (envCustomModel && !options2.some((existing) => existing.value === envCustomModel)) {
350858
+ options2.push({
350859
+ value: envCustomModel,
350860
+ label: process.env.ANTHROPIC_CUSTOM_MODEL_OPTION_NAME ?? envCustomModel,
350861
+ description: process.env.ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION ?? `Custom model (${envCustomModel})`
350862
+ });
350863
+ }
350864
+ for (const opt of getGlobalConfig().additionalModelOptionsCache ?? []) {
350865
+ if (!options2.some((existing) => existing.value === opt.value)) {
350866
+ options2.push(opt);
350867
+ }
350868
+ }
350869
+ let customModel = null;
350870
+ const currentMainLoopModel = getUserSpecifiedModelSetting();
350871
+ const initialMainLoopModel = getInitialMainLoopModel();
350872
+ if (currentMainLoopModel !== undefined && currentMainLoopModel !== null) {
350873
+ customModel = currentMainLoopModel;
350874
+ } else if (initialMainLoopModel !== null) {
350875
+ customModel = initialMainLoopModel;
350876
+ }
350877
+ if (customModel === null || options2.some((opt) => opt.value === customModel)) {
350878
+ return filterModelOptionsByAllowlist(options2);
350879
+ } else if (customModel === "opusplan") {
350880
+ return filterModelOptionsByAllowlist([...options2, getOpusPlanOption()]);
350881
+ } else if (customModel === "codexplan") {
350882
+ return filterModelOptionsByAllowlist([...options2, getCodexPlanOption()]);
350883
+ } else if (customModel === "codexspark") {
350884
+ return filterModelOptionsByAllowlist([...options2, getCodexSparkOption()]);
350885
+ } else if (customModel === "opus" && getAPIProvider() === "firstParty") {
350886
+ return filterModelOptionsByAllowlist([
350887
+ ...options2,
350888
+ getMaxOpusOption(fastMode)
350889
+ ]);
350890
+ } else if (customModel === "opus[1m]" && getAPIProvider() === "firstParty") {
350891
+ return filterModelOptionsByAllowlist([
350892
+ ...options2,
350893
+ getMergedOpus1MOption(fastMode)
350894
+ ]);
350895
+ } else {
350896
+ const knownOption = getKnownModelOption(customModel);
350897
+ if (knownOption) {
350898
+ options2.push(knownOption);
350899
+ } else {
350900
+ options2.push({
350901
+ value: customModel,
350902
+ label: customModel,
350903
+ description: "Custom model"
350904
+ });
350905
+ }
350906
+ return filterModelOptionsByAllowlist(options2);
350907
+ }
350908
+ }
350909
+ function filterModelOptionsByAllowlist(options2) {
350910
+ const settings = getSettings_DEPRECATED() || {};
350911
+ if (!settings.availableModels) {
350912
+ return options2;
350913
+ }
350914
+ return options2.filter((opt) => opt.value === null || opt.value !== null && isModelAllowed(opt.value));
350915
+ }
350916
+ var MaxSonnet46Option, MaxHaiku45Option;
350917
+ var init_modelOptions = __esm(() => {
350918
+ init_state();
350919
+ init_antModels();
350920
+ init_auth2();
350921
+ init_modelStrings();
350922
+ init_modelCost();
350923
+ init_settings2();
350924
+ init_check1mAccess();
350925
+ init_providers();
350926
+ init_modelAllowlist();
350927
+ init_model();
350928
+ init_context();
350929
+ init_config2();
350930
+ init_maximoModels();
350931
+ MaxSonnet46Option = {
350932
+ value: "sonnet",
350933
+ label: "Sonnet",
350934
+ description: "Sonnet 4.6 · Best for everyday tasks"
350935
+ };
350936
+ MaxHaiku45Option = {
350937
+ value: "haiku",
350938
+ label: "Haiku",
350939
+ description: "Haiku 4.5 · Fastest for quick answers"
350940
+ };
350941
+ });
350942
+
350959
350943
  // src/voice/voiceModeEnabled.ts
350960
350944
  var init_voiceModeEnabled = __esm(() => {
350961
350945
  init_growthbook();
@@ -354407,6 +354391,41 @@ function normalizeAgentToolInput(value) {
354407
354391
  function listSubagentModelSlugs() {
354408
354392
  return listSubagentDelegationCatalog().map((entry) => entry.slug);
354409
354393
  }
354394
+ function listAccountCatalogSlugs() {
354395
+ const slugs = [];
354396
+ const seen = new Set;
354397
+ const add = (value) => {
354398
+ if (typeof value !== "string")
354399
+ return;
354400
+ const trimmed = value.trim();
354401
+ if (!trimmed || trimmed === "default" || seen.has(trimmed))
354402
+ return;
354403
+ seen.add(trimmed);
354404
+ slugs.push(trimmed);
354405
+ };
354406
+ try {
354407
+ for (const option of getCachedMaximoModelOptions() ?? []) {
354408
+ add(option.value);
354409
+ }
354410
+ } catch {}
354411
+ try {
354412
+ for (const option of getGlobalConfig().additionalModelOptionsCache ?? []) {
354413
+ add(option.value);
354414
+ }
354415
+ } catch {}
354416
+ return slugs;
354417
+ }
354418
+ function isAccountCatalogModel(model) {
354419
+ if (!model || isInheritAgentModel(model))
354420
+ return true;
354421
+ const trimmed = model.trim();
354422
+ if (!trimmed)
354423
+ return true;
354424
+ if (getCachedMaximoModel(trimmed))
354425
+ return true;
354426
+ const wanted = trimmed.toLowerCase();
354427
+ return listAccountCatalogSlugs().some((slug) => slug.toLowerCase() === wanted);
354428
+ }
354410
354429
  function listSubagentDelegationCatalog() {
354411
354430
  const entries = [
354412
354431
  { slug: "inherit", efforts: [] }
@@ -354424,12 +354443,9 @@ function listSubagentDelegationCatalog() {
354424
354443
  ...config2?.defaultEffort ? { defaultEffort: config2.defaultEffort } : {}
354425
354444
  });
354426
354445
  };
354427
- try {
354428
- for (const option of getModelOptions()) {
354429
- if (typeof option.value === "string")
354430
- add(option.value);
354431
- }
354432
- } catch {}
354446
+ for (const slug of listAccountCatalogSlugs()) {
354447
+ add(slug);
354448
+ }
354433
354449
  return entries;
354434
354450
  }
354435
354451
  function formatSubagentModelList(slugs) {
@@ -354465,9 +354481,9 @@ function formatSubagentDelegationCatalog(entries, limit = 40) {
354465
354481
  var SENTINEL_STRINGS, SHARED_ISOLATION_STRINGS, WORKTREE_ISOLATION_STRINGS;
354466
354482
  var init_agentToolParams = __esm(() => {
354467
354483
  init_maximoModels();
354484
+ init_config2();
354468
354485
  init_effort();
354469
354486
  init_agent();
354470
- init_modelOptions();
354471
354487
  SENTINEL_STRINGS = new Set([
354472
354488
  "",
354473
354489
  "null",
@@ -355717,14 +355733,14 @@ A call that omits \`description\` or \`prompt\` is rejected. Do not start the su
355717
355733
 
355718
355734
  Optional but supported on every spawn:
355719
355735
  - \`subagent_type\`: one of the types listed above. If omitted, ${forkEnabled ? "a fork of yourself is created" : "the general-purpose agent is used"}.
355720
- - \`model\`: an exact slug from the live catalog below, a family alias (\`sonnet\`, \`opus\`, \`haiku\`), or \`inherit\`. Do not invent slugs. Omit to inherit the parent model. Compact list: ${availableModels}.
355736
+ - \`model\`: an exact slug from the live logged-in account catalog below, or \`inherit\`. Do not invent slugs and do not use Claude family aliases (\`sonnet\`, \`opus\`, \`haiku\`) unless that exact id is in this catalog. Omit to inherit the parent model. Compact list: ${availableModels}.
355721
355737
  - \`effort\`: a level listed for that model in the catalog below. Omit to inherit the parent effort. Never pass an effort the chosen model does not list.
355722
355738
  - \`isolation\`: \`"none"\` (default, shared workspace) or \`"worktree"\` (isolated git worktree). Never pass any other value. \`"none"\` is valid and means "do not isolate".
355723
355739
  - \`run_in_background\`: \`true\` to return immediately and get a completion notification later.
355724
355740
 
355725
355741
  ## Live model and effort catalog
355726
355742
 
355727
- This is the same provider catalog the CLI uses for \`/model\` and \`/effort\`. Use these exact \`model\` slugs and only the efforts listed on that row:
355743
+ This is the same logged-in account catalog \`/model\` shows (Maximo AI, MyTabulon, Cencori, OpenRouter, OpenCode, etc.). Use these exact \`model\` slugs and only the efforts listed on that row:
355728
355744
 
355729
355745
  ${catalogText}
355730
355746
 
@@ -355847,7 +355863,7 @@ ${agentListSection}
355847
355863
 
355848
355864
  ${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.`}
355849
355865
 
355850
- Always pass both \`description\` (3-5 word title) and \`prompt\` (full task). You may set \`model\` to a slug from the live catalog and \`effort\` to a level listed for that model; omit them to inherit the parent. \`isolation\` accepts only \`"none"\` (default, shared workspace) or \`"worktree"\`.`;
355866
+ Always pass both \`description\` (3-5 word title) and \`prompt\` (full task). You may set \`model\` to a slug from the live logged-in account catalog and \`effort\` to a level listed for that model; omit them to inherit the parent. \`isolation\` accepts only \`"none"\` (default, shared workspace) or \`"worktree"\`.`;
355851
355867
  if (isCoordinator) {
355852
355868
  return shared2;
355853
355869
  }
@@ -355967,7 +355983,7 @@ var init_AgentTool = __esm(() => {
355967
355983
  description: exports_external.string().describe("A short (3-5 word) title for the task. Required. Shown in the UI as the subagent name."),
355968
355984
  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."),
355969
355985
  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)."),
355970
- model: exports_external.string().optional().describe(`Optional model slug for this subagent. Pass an exact slug from the live catalog in this tool's description, a family alias (sonnet, opus, haiku), or "inherit". If omitted, uses the agent definition's model or inherits the parent. Do not invent slugs.`),
355986
+ model: exports_external.string().optional().describe(`Optional model slug for this subagent. Pass an exact slug from the live logged-in account catalog in this tool's description, or "inherit". If omitted, uses the agent definition's model or inherits the parent. Do not invent slugs and do not use Claude family aliases such as sonnet, opus, or haiku unless that exact slug is in the catalog.`),
355971
355987
  effort: exports_external.string().optional().describe("Optional reasoning effort for this subagent. Pass a level from the chosen model's row in this tool's live catalog. If omitted, inherits the parent effort or the agent definition's effort. Do not invent effort names."),
355972
355988
  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.")
355973
355989
  }));
@@ -356164,8 +356180,11 @@ var init_AgentTool = __esm(() => {
356164
356180
  if (selectedAgent.color) {
356165
356181
  setAgentColor(selectedAgent.agentType, selectedAgent.color);
356166
356182
  }
356183
+ if (model && !isInheritAgentModel(model) && !isAccountCatalogModel(model)) {
356184
+ throw new Error(`Model '${model}' is not in the logged-in account catalog. Use inherit or one of: ${formatSubagentModelList(listSubagentModelSlugs())}.`);
356185
+ }
356167
356186
  const resolvedAgentModel = getAgentModel(selectedAgent.model, toolUseContext.options.mainLoopModel, isForkPath ? undefined : model, permissionMode);
356168
- if (model && !isModelAllowed(resolvedAgentModel)) {
356187
+ if (model && !isModelAllowed(resolvedAgentModel) && !isAccountCatalogModel(resolvedAgentModel)) {
356169
356188
  throw new Error(`Model '${model}' is not available. Available models: ${formatSubagentModelList(listSubagentModelSlugs())}.`);
356170
356189
  }
356171
356190
  logEvent("tengu_agent_tool_selected", {
@@ -366718,7 +366737,7 @@ function getAnthropicEnvMetadata() {
366718
366737
  function getBuildAgeMinutes() {
366719
366738
  if (false)
366720
366739
  ;
366721
- const buildTime = new Date("2026-08-15T17:46:38.288Z").getTime();
366740
+ const buildTime = new Date("2026-08-15T17:55:08.183Z").getTime();
366722
366741
  if (isNaN(buildTime))
366723
366742
  return;
366724
366743
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -432796,7 +432815,7 @@ function getRecentActivitySync() {
432796
432815
  return cachedActivity;
432797
432816
  }
432798
432817
  function getLogoDisplayData() {
432799
- const version2 = process.env.DEMO_VERSION ?? "0.1.36" ?? "99.0.0";
432818
+ const version2 = process.env.DEMO_VERSION ?? "0.1.37" ?? "99.0.0";
432800
432819
  const serverUrl = getDirectConnectServerUrl();
432801
432820
  const displayPath = process.env.DEMO_VERSION ? "/code/maximo" : getDisplayPath(getCwd());
432802
432821
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -462261,7 +462280,7 @@ var init_bridge_kick = __esm(() => {
462261
462280
  var call57 = async () => {
462262
462281
  return {
462263
462282
  type: "text",
462264
- value: `${"99.0.0"} (built ${"2026-08-15T17:46:38.288Z"})`
462283
+ value: `${"99.0.0"} (built ${"2026-08-15T17:55:08.183Z"})`
462265
462284
  };
462266
462285
  }, version2, version_default;
462267
462286
  var init_version = __esm(() => {
@@ -536793,7 +536812,7 @@ function SetupRow({ children }) {
536793
536812
  }
536794
536813
  function WelcomeV2() {
536795
536814
  const { columns } = useTerminalSize();
536796
- const version3 = "0.1.36";
536815
+ const version3 = "0.1.37";
536797
536816
  const width = Math.max(48, Math.min(columns || 92, 92));
536798
536817
  const stacked = width < OCTOPUS_COMPACT_WIDTH + 42;
536799
536818
  return /* @__PURE__ */ jsx_runtime479.jsx(ThemedBox_default, {
@@ -556729,7 +556748,7 @@ Usage: maximo --remote "your task description"`, () => gracefulShutdown(1));
556729
556748
  pendingHookMessages
556730
556749
  }, renderAndRun);
556731
556750
  }
556732
- }).version("0.1.36 (Maximo Syntax)", "-v, --version", "Output the version number");
556751
+ }).version("0.1.37 (Maximo Syntax)", "-v, --version", "Output the version number");
556733
556752
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
556734
556753
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
556735
556754
  if (canUserConfigureAdvisor()) {
@@ -557268,7 +557287,7 @@ function validateProviderEnvOrExit() {
557268
557287
  async function main2() {
557269
557288
  const args = process.argv.slice(2);
557270
557289
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
557271
- console.log(`${"0.1.36"} (Maximo Syntax)`);
557290
+ console.log(`${"0.1.37"} (Maximo Syntax)`);
557272
557291
  return;
557273
557292
  }
557274
557293
  validateProviderEnvOrExit();
@@ -557345,4 +557364,4 @@ async function main2() {
557345
557364
  }
557346
557365
  main2();
557347
557366
 
557348
- //# debugId=137C1FE392A2B04A64756E2164756E21
557367
+ //# debugId=FF97CF4ACB87F2D964756E2164756E21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maximoai/maximo-syntax-cli",
3
- "version": "0.1.36",
3
+ "version": "0.1.37",
4
4
  "description": "Maximo Syntax CLI - A powerful AI-powered command-line interface for code development with any LLM",
5
5
  "type": "module",
6
6
  "bin": {