zames_pro 2.82.91 → 2.82.93

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/CHANGELOG.md CHANGED
@@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.82.93] - 2026-10-24
11
+
12
+ ### Fixed
13
+
14
+ - **web:** collapse a duplicated search result URL
15
+
16
+ ## [2.82.92] - 2026-10-24
17
+
18
+ ### Fixed
19
+
20
+ - **goal:** collapse whitespace in the evaluator reason
21
+
10
22
  ## [2.82.91] - 2026-10-24
11
23
 
12
24
  ### Fixed
package/dist/goal.js CHANGED
@@ -66,7 +66,12 @@ export function buildContinuationDirective(reason) {
66
66
  'until it is satisfied. Do not call respond with a final summary until the ' +
67
67
  'condition is met.' +
68
68
  NL +
69
- (argumentReason(reason) ? 'Evaluator note: ' + reason : ''));
69
+ // Collapse whitespace in the model-written reason: a NEWLINE started a new
70
+ // line of the directive, letting the evaluator's text inject an extra
71
+ // instruction into the next turn.
72
+ (argumentReason(reason)
73
+ ? 'Evaluator note: ' + String(reason).trim().replace(/\s+/g, ' ')
74
+ : ''));
70
75
  }
71
76
  function argumentReason(reason) {
72
77
  return String(reason ?? '').trim().length > 0;
package/dist/web.js CHANGED
@@ -665,6 +665,9 @@ export function parseDuckDuckGoResults(body, limit) {
665
665
  return m ? (m[1] ?? m[2] ?? '') : '';
666
666
  };
667
667
  let cur = null;
668
+ // The page can repeat the SAME result (a sponsored row mirroring an organic
669
+ // one): two identical URLs made WebSearch print and cite it twice.
670
+ const seenUrls = new Set();
668
671
  let m;
669
672
  while ((m = anchorRe.exec(body))) {
670
673
  const classes = m[1] ?? m[2] ?? '';
@@ -675,9 +678,12 @@ export function parseDuckDuckGoResults(body, limit) {
675
678
  const text = m[3] || '';
676
679
  if (kind === 'a') {
677
680
  if (cur && cur.title && /^https?:\/\//i.test(cur.url)) {
678
- results.push(cur);
679
- if (results.length >= limit)
680
- return results;
681
+ if (!seenUrls.has(cur.url)) {
682
+ seenUrls.add(cur.url);
683
+ results.push(cur);
684
+ if (results.length >= limit)
685
+ return results;
686
+ }
681
687
  }
682
688
  cur = { title: htmlToText(text).trim(), url: '', snippet: '' };
683
689
  // The href lives in the OPENING tag, which m[0] starts with.
@@ -697,8 +703,13 @@ export function parseDuckDuckGoResults(body, limit) {
697
703
  if (cur && !cur.snippet)
698
704
  cur.snippet = htmlToText(text).trim();
699
705
  }
700
- if (cur && cur.title && /^https?:\/\//i.test(cur.url))
706
+ if (cur &&
707
+ cur.title &&
708
+ /^https?:\/\//i.test(cur.url) &&
709
+ !seenUrls.has(cur.url)) {
710
+ seenUrls.add(cur.url);
701
711
  results.push(cur);
712
+ }
702
713
  return results.slice(0, limit);
703
714
  }
704
715
  function formatResult(status, url, text, limit) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zames_pro",
3
- "version": "2.82.91",
3
+ "version": "2.82.93",
4
4
  "description": "Terminal coding agent that drives a real browser to chat with DeepSeek, Qwen and other web LLMs — no API key required. Reads and edits files, runs commands, commits to git, like Claude Code / Codex CLI.",
5
5
  "type": "module",
6
6
  "bin": {