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 +12 -0
- package/dist/goal.js +6 -1
- package/dist/web.js +15 -4
- package/package.json +1 -1
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
|
-
|
|
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
|
-
|
|
679
|
-
|
|
680
|
-
|
|
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 &&
|
|
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.
|
|
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": {
|