zames_pro 2.80.2 → 2.80.4
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/qwen-chats.js +7 -7
- package/dist/web.js +11 -2
- 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.80.4] - 2026-10-20
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- parse a bare id-keyed Qwen chat list map
|
|
15
|
+
|
|
16
|
+
## [2.80.3] - 2026-10-20
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
|
|
20
|
+
- a malformed uddg escape does not abort the web search
|
|
21
|
+
|
|
10
22
|
## [2.80.2] - 2026-10-20
|
|
11
23
|
|
|
12
24
|
### Fixed
|
package/dist/qwen-chats.js
CHANGED
|
@@ -97,14 +97,14 @@ export function parseQwenChatList(json) {
|
|
|
97
97
|
const arr = Array.isArray(data)
|
|
98
98
|
? data
|
|
99
99
|
: data && typeof data === 'object'
|
|
100
|
-
? (
|
|
101
|
-
|
|
102
|
-
|
|
100
|
+
? // A bare map keyed by chat id (the same convention as the history
|
|
101
|
+
// shape) has no `chats`/`list`/`items` wrapper: without this fallback
|
|
102
|
+
// a legitimate list was rejected and /chats printed "(none)".
|
|
103
|
+
(data.chats ??
|
|
104
|
+
data.list ??
|
|
105
|
+
data.items ??
|
|
106
|
+
data)
|
|
103
107
|
: null;
|
|
104
|
-
// The payload has also been seen as a MAP keyed by chat id (the same
|
|
105
|
-
// convention as the history shape); the key then IS the id. Without this a
|
|
106
|
-
// legitimate list was rejected by the array guard and /chats printed
|
|
107
|
-
// "(none)" with no error.
|
|
108
108
|
const keyed = Array.isArray(arr)
|
|
109
109
|
? null
|
|
110
110
|
: arr && typeof arr === 'object'
|
package/dist/web.js
CHANGED
|
@@ -643,8 +643,17 @@ export function parseDuckDuckGoResults(body, limit) {
|
|
|
643
643
|
while ((m = re.exec(body)) && results.length < limit) {
|
|
644
644
|
let href = m[1];
|
|
645
645
|
const uddgMatch = href.match(/[?&]uddg=([^&]+)/);
|
|
646
|
-
if (uddgMatch)
|
|
647
|
-
|
|
646
|
+
if (uddgMatch) {
|
|
647
|
+
// decodeURIComponent THROWS on a malformed percent escape (`%ZZ`, a lone
|
|
648
|
+
// `%`). One broken href in the page must not abort the whole search: keep
|
|
649
|
+
// the raw href, which the http(s) check below then rejects.
|
|
650
|
+
try {
|
|
651
|
+
href = decodeURIComponent(uddgMatch[1]);
|
|
652
|
+
}
|
|
653
|
+
catch {
|
|
654
|
+
href = uddgMatch[1];
|
|
655
|
+
}
|
|
656
|
+
}
|
|
648
657
|
const title = htmlToText(m[2] || '').trim();
|
|
649
658
|
const snippet = htmlToText(m[3] || '').trim();
|
|
650
659
|
// Only an absolute http(s) link is a real result. The page can carry a
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zames_pro",
|
|
3
|
-
"version": "2.80.
|
|
3
|
+
"version": "2.80.4",
|
|
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": {
|