opencode-zen-freex 0.2.9 → 0.2.10

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/MAINTAINING.md CHANGED
@@ -181,6 +181,17 @@ part of a run answered and part of it did not.
181
181
  locally and reads the request it makes, so nothing is sent to Zen and no key is
182
182
  involved.
183
183
 
184
+ The wording it reads is the host's, so the host's own details are put back to
185
+ something neutral before the capture is written: the OS banner, the scratch
186
+ directory, and now the shell's version. That last one was live — opencode 1.19.0
187
+ words `bash`'s description after the machine it runs on, one host saying
188
+ "Executes a given Windows PowerShell (5.1) command…" and another "PowerShell
189
+ (7+)…", and Zen reads those bytes out of the request, so two machines disagreed
190
+ about a description that belongs to neither. The version is dropped, which is
191
+ also what a capture on Linux already says; the live gate answered the neutral
192
+ wording four times running on 2026-10-16. What any wording is worth is settled by
193
+ `check:gate`, never by this file.
194
+
184
195
  ## Reading a failure
185
196
 
186
197
  **Every `floor` `refused`.** OpenCode reworded its tools, or moved the endpoint.
package/fingerprint.json CHANGED
@@ -20,7 +20,7 @@
20
20
  "tools": {
21
21
  "bash": {
22
22
  "name": "bash",
23
- "description": "Executes a given Windows PowerShell (5.1) command with optional timeout, ensuring proper handling and security measures.\n\nBe aware: OS: linux, Shell: bash\n\nAll commands run in the current working directory by default. Use the `workdir` parameter if you need to run a command in a different directory. AVOID changing directories inside the command - use `workdir` instead.\n\nUse `/tmp` for temporary work outside the workspace. This directory has already been created, already exists, and is pre-approved for external directory access.\n\nIMPORTANT: This tool is for terminal operations like git, npm, docker, etc. DO NOT use it for file operations (reading, writing, editing, searching, finding files) - use the specialized tools for this instead.\n\n# Windows PowerShell (5.1) shell notes\n- Use `cmd1; if ($?) { cmd2 }` to chain dependent commands.\n- Use double quotes for interpolated strings (`\"Hello $name\"`), single quotes for verbatim strings.\n- Prefer full cmdlet names like `Get-ChildItem`, `Set-Content`, `Remove-Item`, and `New-Item` over aliases.\n- Use `$(...)` for subexpressions. Use `@(...)` for array expressions.\n- To call a native executable whose path contains spaces, use the call opera",
23
+ "description": "Executes a given PowerShell command with optional timeout, ensuring proper handling and security measures.\n\nBe aware: OS: linux, Shell: bash\n\nAll commands run in the current working directory by default. Use the `workdir` parameter if you need to run a command in a different directory. AVOID changing directories inside the command - use `workdir` instead.\n\nUse `/tmp` for temporary work outside the workspace. This directory has already been created, already exists, and is pre-approved for external directory access.\n\nIMPORTANT: This tool is for terminal operations like git, npm, docker, etc. DO NOT use it for file operations (reading, writing, editing, searching, finding files) - use the specialized tools for this instead.\n\n# PowerShell shell notes\n- This cross-platform shell supports pipeline chain operators (`&&` and `||`).\n- Use double quotes for interpolated strings (`\"Hello $name\"`), single quotes for verbatim strings.\n- Prefer full cmdlet names like `Get-ChildItem`, `Set-Content`, `Remove-Item`, and `New-Item` over aliases.\n- Use `$(...)` for subexpressions. Use `@(...)` for array expressions.\n- To call a native executable whose path contains spaces, use the call operator: `& \"",
24
24
  "parameters": {
25
25
  "$schema": "https://json-schema.org/draft/2020-12/schema",
26
26
  "type": "object",
@@ -46,6 +46,37 @@
46
46
  ]
47
47
  }
48
48
  },
49
+ "edit": {
50
+ "name": "edit",
51
+ "description": "Performs exact string replacements in files. \n\nUsage:\n- You must use your `Read` tool at least once in the conversation before editing. This tool will error if you attempt an edit without reading the file. \n- When editing text from Read tool output, ensure you preserve the exact indentation (tabs/spaces) as it appears AFTER the line number prefix. The line number prefix format is: line number + colon + space (e.g., `1: `). Everything after that space is the actual file content to match. Never include any part of the line number prefix in the oldString or newString.\n- ALWAYS prefer editing existing files in the codebase. NEVER write new files unless explicitly required.\n- Only use emojis if the user explicitly requests it. Avoid adding emojis to files unless asked.\n- The edit will FAIL if `oldString` is not found in the file with an error \"oldString not found in content\".\n- The edit will FAIL if `oldString` is found multiple times in the file with an error \"Found multiple matches for oldString. Provide more surrounding lines in oldString to identify the correct match.\" Either provide a larger string with more surrounding context to make it unique or use `replaceAll` to change every ",
52
+ "parameters": {
53
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
54
+ "type": "object",
55
+ "properties": {
56
+ "filePath": {
57
+ "type": "string",
58
+ "description": "The absolute path to the file to modify"
59
+ },
60
+ "oldString": {
61
+ "type": "string",
62
+ "description": "The text to replace"
63
+ },
64
+ "newString": {
65
+ "type": "string",
66
+ "description": "The text to replace it with (must be different from oldString)"
67
+ },
68
+ "replaceAll": {
69
+ "type": "boolean",
70
+ "description": "Replace all occurrences of oldString (default false)"
71
+ }
72
+ },
73
+ "required": [
74
+ "filePath",
75
+ "oldString",
76
+ "newString"
77
+ ]
78
+ }
79
+ },
49
80
  "glob": {
50
81
  "name": "glob",
51
82
  "description": "- Fast file pattern matching tool that works with any codebase size\n- Supports glob patterns like \"**/*.js\" or \"src/**/*.ts\"\n- Returns matching file paths\n- Use this tool when you need to find files by name patterns\n- When you are doing an open-ended search that may require multiple rounds of globbing and grepping, use the Task tool instead\n- You have the capability to call multiple tools in a single response. It is always better to speculatively perform multiple searches as a batch that are potentially useful.\n",
@@ -121,37 +152,6 @@
121
152
  ]
122
153
  }
123
154
  },
124
- "edit": {
125
- "name": "edit",
126
- "description": "Performs exact string replacements in files. \n\nUsage:\n- You must use your `Read` tool at least once in the conversation before editing. This tool will error if you attempt an edit without reading the file. \n- When editing text from Read tool output, ensure you preserve the exact indentation (tabs/spaces) as it appears AFTER the line number prefix. The line number prefix format is: line number + colon + space (e.g., `1: `). Everything after that space is the actual file content to match. Never include any part of the line number prefix in the oldString or newString.\n- ALWAYS prefer editing existing files in the codebase. NEVER write new files unless explicitly required.\n- Only use emojis if the user explicitly requests it. Avoid adding emojis to files unless asked.\n- The edit will FAIL if `oldString` is not found in the file with an error \"oldString not found in content\".\n- The edit will FAIL if `oldString` is found multiple times in the file with an error \"Found multiple matches for oldString. Provide more surrounding lines in oldString to identify the correct match.\" Either provide a larger string with more surrounding context to make it unique or use `replaceAll` to change every ",
127
- "parameters": {
128
- "$schema": "https://json-schema.org/draft/2020-12/schema",
129
- "type": "object",
130
- "properties": {
131
- "filePath": {
132
- "type": "string",
133
- "description": "The absolute path to the file to modify"
134
- },
135
- "oldString": {
136
- "type": "string",
137
- "description": "The text to replace"
138
- },
139
- "newString": {
140
- "type": "string",
141
- "description": "The text to replace it with (must be different from oldString)"
142
- },
143
- "replaceAll": {
144
- "type": "boolean",
145
- "description": "Replace all occurrences of oldString (default false)"
146
- }
147
- },
148
- "required": [
149
- "filePath",
150
- "oldString",
151
- "newString"
152
- ]
153
- }
154
- },
155
155
  "write": {
156
156
  "name": "write",
157
157
  "description": "Writes a file to the local filesystem.\n\nUsage:\n- This tool will overwrite the existing file if there is one at the provided path.\n- If this is an existing file, you MUST use the Read tool first to read the file's contents. This tool will fail if you did not read the file first.\n- ALWAYS prefer editing existing files in the codebase. NEVER write new files unless explicitly required.\n- NEVER proactively create documentation files (*.md) or README files. Only create documentation files if explicitly requested by the User.\n- Only use emojis if the user explicitly requests it. Avoid writing emojis to files unless asked.\n",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-zen-freex",
3
- "version": "0.2.9",
3
+ "version": "0.2.10",
4
4
  "description": "OpenCode Zen's free models, for hosts that are not OpenCode: the public credential, automatic discovery and native streaming protocols",
5
5
  "type": "module",
6
6
  "main": "./index.mjs",