zames_pro 2.82.109 → 2.82.110
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 +6 -0
- package/dist/commands.js +24 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [2.82.110] - 2026-10-24
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- **commands:** a dollar token inside a custom-command argument is not expanded twice
|
|
15
|
+
|
|
10
16
|
## [2.82.109] - 2026-10-24
|
|
11
17
|
|
|
12
18
|
### Fixed
|
package/dist/commands.js
CHANGED
|
@@ -886,10 +886,32 @@ function replaceDollarTokens(s, parts, names) {
|
|
|
886
886
|
// it is unit-tested.
|
|
887
887
|
export function expandCommandArgs(body, rest, names = []) {
|
|
888
888
|
const parts = splitCommandArgs(rest);
|
|
889
|
+
// Scan the BODY only: the operator's arguments are DATA and must not be
|
|
890
|
+
// re-scanned for `$1`/`$name`. Substituting them into the text FIRST and
|
|
891
|
+
// running the dollar pass over the result rewrote an argument that merely
|
|
892
|
+
// contained `$1` (`/cmd real $1` sent `real real`). A unique placeholder is
|
|
893
|
+
// parked for every `{{args}}`/`$ARGUMENTS` occurrence and restored after the
|
|
894
|
+
// positional pass.
|
|
895
|
+
const parked = [];
|
|
889
896
|
let out = String(body ?? '');
|
|
890
|
-
|
|
891
|
-
|
|
897
|
+
const park = () => {
|
|
898
|
+
const key = String.fromCharCode(0x1f) +
|
|
899
|
+
'a' +
|
|
900
|
+
parked.length +
|
|
901
|
+
String.fromCharCode(0x1f);
|
|
902
|
+
parked.push(rest);
|
|
903
|
+
return key;
|
|
904
|
+
};
|
|
905
|
+
out = out.split('{{args}}').join(park());
|
|
906
|
+
out = out.split('$ARGUMENTS').join(park());
|
|
892
907
|
out = replaceDollarTokens(out, parts, names);
|
|
908
|
+
for (let i = 0; i < parked.length; i++) {
|
|
909
|
+
const key = String.fromCharCode(0x1f) + 'a' + i + String.fromCharCode(0x1f);
|
|
910
|
+
out = out.split(key).join(parked[i]);
|
|
911
|
+
}
|
|
912
|
+
// The placeholder uses a control character that cannot appear in a normal
|
|
913
|
+
// body; a body that DOES contain it (a binary snippet) is left untouched
|
|
914
|
+
// because its text is not a generated key.
|
|
893
915
|
return out.trim();
|
|
894
916
|
}
|
|
895
917
|
// Names declared in `arguments:` but not supplied on the command line (by
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zames_pro",
|
|
3
|
-
"version": "2.82.
|
|
3
|
+
"version": "2.82.110",
|
|
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": {
|