nothumanallowed 13.5.111 → 13.5.113

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,6 +1,6 @@
1
1
  {
2
2
  "name": "nothumanallowed",
3
- "version": "13.5.111",
3
+ "version": "13.5.113",
4
4
  "description": "NotHumanAllowed — 38 AI agents, 80 tools, Studio (visual agentic workflows). Email, calendar, browser automation, screen capture, canvas, cron/heartbeat, Alexandria E2E messaging, GitHub, Notion, Slack, voice chat, free AI (Liara), 28 languages. Zero-dependency CLI.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -3740,8 +3740,20 @@ ${attachmentText ? `## ATTACHED FILE CONTENT:\n${attachmentText}\n` : ''}${toolD
3740
3740
  ${contextBlock}
3741
3741
  Your task: ${stepPrompt}`;
3742
3742
  sysPrompt = agentInstruction;
3743
+ // TravelAgent: give specific guidance so HERALD presents alternatives + booking links
3744
+ const isTravelStep = agent === 'TravelAgent';
3745
+ // Extract city/cuisine from toolData header (format: "# TravelAgent — Risultati per: Mantova | Cucina: sushi")
3746
+ const _travelCityM = toolData && toolData.match(/Risultati per:\s*([^|#\n]+)/);
3747
+ const _travelCuisineM = toolData && toolData.match(/Cucina:\s*([^|#\n]+)/);
3748
+ const _travelCity = _travelCityM ? _travelCityM[1].trim() : '';
3749
+ const _travelCuisine = _travelCuisineM ? _travelCuisineM[1].trim() : '';
3750
+ const _theforkUrl = 'https://www.thefork.it/ristoranti/' + (_travelCity ? encodeURIComponent(_travelCity.toLowerCase()) : 'italia') + (_travelCuisine ? '?q=' + encodeURIComponent(_travelCuisine) : '');
3751
+ const _bookingUrl = 'https://www.booking.com/searchresults.html?ss=' + encodeURIComponent(_travelCity || 'Italia') + '&group_adults=2&no_rooms=1';
3752
+ const _tripadUrl = 'https://www.tripadvisor.it/Search?q=' + encodeURIComponent((_travelCuisine ? _travelCuisine + ' ' : '') + _travelCity);
3743
3753
  userMsg = toolData
3744
- ? `Summarize and analyze the REAL data above. Do not add anything not present in the data.`
3754
+ ? (isTravelStep
3755
+ ? `Present the travel results in Italian with these sections:\n\n## Ristoranti\nList every restaurant from the data with name, address, phone, website, OSM map link. If the requested cuisine (${_travelCuisine || 'richiesta'}) was NOT found, say "Nessun ristorante [cucina] trovato su OpenStreetMap nella zona" then list the alternative restaurants found.\n\n## Alloggi\nList every accommodation from the data with type (Hotel/B&B/Ostello/Agriturismo), name, address, website, OSM map link.\n\n## Prenota online\nAdd these direct booking links:\n- **Ristoranti su TheFork**: ${_theforkUrl}\n- **Hotel/B&B su Booking.com**: ${_bookingUrl}\n- **Recensioni su TripAdvisor**: ${_tripadUrl}\n\nDo NOT invent any data not in the sections above.`
3756
+ : `Summarize and analyze the REAL data above. Do not add anything not present in the data.`)
3745
3757
  : context
3746
3758
  ? `Based ONLY on the previous agent outputs above, complete: ${stepPrompt}`
3747
3759
  : stepPrompt;
package/src/constants.mjs CHANGED
@@ -5,7 +5,7 @@ import { fileURLToPath } from 'url';
5
5
  const __filename = fileURLToPath(import.meta.url);
6
6
  const __dirname = path.dirname(__filename);
7
7
 
8
- export const VERSION = '13.5.111';
8
+ export const VERSION = '13.5.113';
9
9
  export const BASE_URL = 'https://nothumanallowed.com/cli';
10
10
  export const API_BASE = 'https://nothumanallowed.com/api/v1';
11
11
 
@@ -4871,7 +4871,13 @@ function _doGenerateXLSX() {
4871
4871
  function renderStudioResult() {
4872
4872
  var el = document.getElementById('studioResult');
4873
4873
  if (!el) return;
4874
- if (!studioState.result) { el.style.display = 'none'; return; }
4874
+ if (!studioState.result) {
4875
+ el.style.display = 'none';
4876
+ var _xb = document.getElementById('studioInlineXlsxBtn'); if (_xb) _xb.style.display = 'none';
4877
+ var _cb = document.getElementById('studioInlineCsvBtn'); if (_cb) _cb.style.display = 'none';
4878
+ var _pb = document.getElementById('studioInlinePdfBtn'); if (_pb) _pb.style.display = 'none';
4879
+ return;
4880
+ }
4875
4881
  el.style.display = 'block';
4876
4882
  var hasCanvas = !!(studioState.canvas);
4877
4883
  var body = hasCanvas