beast-agent 2.67.0 → 2.68.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "beast-agent",
3
3
  "productName": "Beast Agent",
4
- "version": "2.67.0",
4
+ "version": "2.68.0",
5
5
  "description": "Ultra-fast local agent shell for Windows.",
6
6
  "author": "algokodcom (AlgoKod)",
7
7
  "license": "MIT",
@@ -217,13 +217,13 @@
217
217
  p_role_sub: 'Vision, Terminal, Coding ve Subagent için ayrı model; boş bırakırsan ana model kullanılır',
218
218
  p_role_main: '— Ana model —',
219
219
  p_custom_h2: 'Özel Provider',
220
- p_custom_sub: 'API adres + key ver, modeller otomatik çekilir',
220
+ p_custom_sub: 'API adres + key ver, modeller otomatik çekilir; olmayanları elle ekle',
221
221
  p_custom_del: 'Sil',
222
222
  p_name_opt: 'Ad (opsiyonel)',
223
223
  p_api_url: 'API adresi',
224
224
  p_api_key: 'API Key',
225
225
  p_fetch: 'Modelleri Çek',
226
- p_models_manual: 'Modelleri elle gir (her satıra bir model adı)',
226
+ p_models_manual: 'Ek modeller — elle ekle (her satıra bir ad; çekilenlere eklenir)',
227
227
  p_save: 'Kaydet',
228
228
  p_model_toast: 'Model: ',
229
229
  p_del_toast: 'Silindi: ',
@@ -979,13 +979,13 @@
979
979
  p_role_sub: 'Separate model for Vision, Terminal, Coding and Subagent; leave empty to use the main model',
980
980
  p_role_main: '— Main model —',
981
981
  p_custom_h2: 'Custom Provider',
982
- p_custom_sub: 'Provide API URL + key, models are fetched automatically',
982
+ p_custom_sub: 'Provide API URL + key, models are fetched automatically; add extra ones manually',
983
983
  p_custom_del: 'Delete',
984
984
  p_name_opt: 'Name (optional)',
985
985
  p_api_url: 'API URL',
986
986
  p_api_key: 'API Key',
987
987
  p_fetch: 'Fetch Models',
988
- p_models_manual: 'Enter models manually (one per line)',
988
+ p_models_manual: 'Extra models — add manually (one per line; added to fetched list)',
989
989
  p_save: 'Save',
990
990
  p_model_toast: 'Model: ',
991
991
  p_del_toast: 'Deleted: ',
@@ -1920,11 +1920,11 @@ async function renderProviderPane() {
1920
1920
  `</div>` +
1921
1921
  `<button id="cpFetch" class="btn ghost">${_t('p_fetch')}</button>` +
1922
1922
  `<div id="cpPicks" class="model-picks" hidden></div>` +
1923
- `<div id="cpManualWrap" hidden>` +
1923
+ `<div id="cpManualWrap">` +
1924
1924
  `<label class="mem-label">${_t('p_models_manual')}</label>` +
1925
- `<textarea id="cpManual" class="mem-area" rows="4" placeholder="model-adi-1&#10;model-adi-2"></textarea>` +
1925
+ `<textarea id="cpManual" class="mem-area" rows="3" placeholder="model-adi-1&#10;model-adi-2"></textarea>` +
1926
1926
  `</div>` +
1927
- `<button id="cpSave" class="btn" hidden>${_t('p_save')}</button>`;
1927
+ `<button id="cpSave" class="btn">${_t('p_save')}</button>`;
1928
1928
  pane.appendChild(form);
1929
1929
 
1930
1930
  let discovered = [];
@@ -1981,11 +1981,11 @@ async function renderProviderPane() {
1981
1981
 
1982
1982
  const collectedModels = () => {
1983
1983
  const picked = [...document.querySelectorAll('#cpPicks input:checked')].map((c) => c.value);
1984
- if (picked.length) return picked;
1985
- return ($('#cpManual').value || '')
1984
+ const manual = ($('#cpManual').value || '')
1986
1985
  .split(/[\n,]+/)
1987
1986
  .map((s) => s.trim())
1988
1987
  .filter(Boolean);
1988
+ return [...new Set([...picked, ...manual])];
1989
1989
  };
1990
1990
 
1991
1991
  $('#cpFetch').addEventListener('click', async () => {
@@ -2005,24 +2005,20 @@ async function renderProviderPane() {
2005
2005
  discovered = res.ok ? res.models : [];
2006
2006
  const picks = $('#cpPicks');
2007
2007
  if (discovered.length) {
2008
- $('#cpManualWrap').hidden = true;
2009
2008
  picks.hidden = false;
2010
2009
  picks.innerHTML = discovered
2011
2010
  .map((m) => `<label><input type="checkbox" value="${escapeHtml(m)}" checked> ${escapeHtml(m)}</label>`)
2012
2011
  .join('');
2013
- $('#cpSave').hidden = false;
2014
- toast(discovered.length + ' model bulundu');
2012
+ toast(discovered.length + ' model bulundu — listeden seç ya da elle ekle');
2015
2013
  } else {
2016
2014
  picks.hidden = true;
2017
2015
  picks.innerHTML = '';
2018
- $('#cpManualWrap').hidden = false;
2019
- $('#cpSave').hidden = false;
2020
2016
  toast('Model çekilemedi (' + (res.error || 'boş') + ') — elle girebilirsin');
2021
2017
  }
2022
2018
  });
2023
2019
 
2024
2020
  $('#cpSave').addEventListener('click', async () => {
2025
- const models = [...new Set(collectedModels())];
2021
+ const models = collectedModels();
2026
2022
  const url = $('#cpUrl').value.trim();
2027
2023
  if (!/^https?:\/\//i.test(url)) { toast('Geçerli API adresi gir'); return; }
2028
2024
  if (!models.length) { toast('En az bir model gir ya da seç'); return; }