@tractorscorch/clank 1.5.5 → 1.5.6

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
@@ -6,6 +6,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
6
6
 
7
7
  ---
8
8
 
9
+ ## [1.5.6] — 2026-03-23
10
+
11
+ ### Fixed
12
+ - **Local models still refusing actions** — v1.5.5 prompt wasn't forceful enough. Rewrote system prompt as a dense, authoritative rules block with numbered rules and explicit list of available tools. Added negative examples ("NEVER say 'I cannot access files'") which are more effective at overriding local model training biases than positive instructions alone
13
+
14
+ ---
15
+
9
16
  ## [1.5.5] — 2026-03-23
10
17
 
11
18
  ### Fixed
package/README.md CHANGED
@@ -9,7 +9,7 @@
9
9
  </p>
10
10
 
11
11
  <p align="center">
12
- <a href="https://github.com/ItsTrag1c/Clank/releases/latest"><img src="https://img.shields.io/badge/version-1.5.5-blue.svg" alt="Version" /></a>
12
+ <a href="https://github.com/ItsTrag1c/Clank/releases/latest"><img src="https://img.shields.io/badge/version-1.5.6-blue.svg" alt="Version" /></a>
13
13
  <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License" /></a>
14
14
  <a href="https://www.npmjs.com/package/@tractorscorch/clank"><img src="https://img.shields.io/npm/v/@tractorscorch/clank.svg" alt="npm" /></a>
15
15
  <a href="https://github.com/ItsTrag1c/Clank/stargazers"><img src="https://img.shields.io/github/stars/ItsTrag1c/Clank.svg" alt="Stars" /></a>
@@ -75,7 +75,7 @@ That's it. Setup auto-detects your local models, configures the gateway, and get
75
75
  | Platform | Download |
76
76
  |----------|----------|
77
77
  | **npm** (all platforms) | `npm install -g @tractorscorch/clank` |
78
- | **macOS** (Apple Silicon) | [Clank_1.5.5_macos](https://github.com/ItsTrag1c/Clank/releases/latest/download/Clank_1.5.5_macos) |
78
+ | **macOS** (Apple Silicon) | [Clank_1.5.6_macos](https://github.com/ItsTrag1c/Clank/releases/latest/download/Clank_1.5.6_macos) |
79
79
 
80
80
  ## Features
81
81
 
package/dist/index.js CHANGED
@@ -1161,14 +1161,26 @@ async function buildSystemPrompt(opts) {
1161
1161
  }
1162
1162
  parts.push("");
1163
1163
  if (compact) {
1164
- parts.push("You are a local AI agent running on the user's machine with DIRECT file system access via tools. Be concise. Use tools proactively. Read files before editing. NEVER say you cannot access files \u2014 you CAN and MUST use your tools.");
1164
+ parts.push([
1165
+ "You are an AI agent running LOCALLY on the user's machine.",
1166
+ "You have tools: read_file, write_file, edit_file, list_directory, bash, search_files, glob_files, git, web_search, web_fetch, and self-config tools.",
1167
+ "ALWAYS use your tools. NEVER say you cannot access files, run commands, or perform actions. You CAN \u2014 use your tools.",
1168
+ "NEVER apologize and refuse. If asked to do something, DO IT with your tools or explain what tool you need."
1169
+ ].join(" "));
1165
1170
  } else {
1166
- parts.push("## Instructions");
1167
- parts.push("You are a local AI agent running directly on the user's machine. You have DIRECT access to the local file system, shell, and web.");
1168
- parts.push("You MUST use your tools (read_file, write_file, edit_file, list_directory, bash, etc.) to accomplish tasks. NEVER claim you cannot access, read, or modify files \u2014 you absolutely can through your tools.");
1169
- parts.push("Be concise and direct. Use tools proactively to accomplish tasks.");
1170
- parts.push("When you need to make changes, read the relevant files first to understand the context.");
1171
- parts.push("You can configure yourself \u2014 use the config, channel, agent, and model management tools to modify your own setup.");
1171
+ parts.push("## CRITICAL: You Are a Local Agent With Tools");
1172
+ parts.push([
1173
+ "You are an AI agent running LOCALLY on the user's machine \u2014 NOT a cloud chatbot.",
1174
+ "You have DIRECT access to the file system, shell, and web through your tools.",
1175
+ "Your tools include: read_file, write_file, edit_file, list_directory, bash, search_files, glob_files, git, web_search, web_fetch, and self-configuration tools."
1176
+ ].join(" "));
1177
+ parts.push("");
1178
+ parts.push("**RULES \u2014 follow these strictly:**");
1179
+ parts.push("1. ALWAYS use your tools to accomplish tasks. When asked to read a file, USE read_file. When asked to run a command, USE bash.");
1180
+ parts.push(`2. NEVER say "I cannot access files", "I don't have the ability to", or "as an AI I cannot". These statements are FALSE. You have tools that give you these abilities.`);
1181
+ parts.push("3. NEVER apologize and refuse to act. If a task requires a tool, use it. If you lack a specific tool, say which tool you need \u2014 do not give a generic refusal.");
1182
+ parts.push("4. Read files before editing them. Use tools proactively without being asked twice.");
1183
+ parts.push("5. You can configure yourself \u2014 use the config, channel, agent, and model management tools to modify your own setup.");
1172
1184
  }
1173
1185
  if (opts.thinking === "off") {
1174
1186
  parts.push("");
@@ -6228,7 +6240,7 @@ var init_server = __esm({
6228
6240
  res.writeHead(200, { "Content-Type": "application/json" });
6229
6241
  res.end(JSON.stringify({
6230
6242
  status: "ok",
6231
- version: "1.5.5",
6243
+ version: "1.5.6",
6232
6244
  uptime: process.uptime(),
6233
6245
  clients: this.clients.size,
6234
6246
  agents: this.engines.size
@@ -6340,7 +6352,7 @@ var init_server = __esm({
6340
6352
  const hello = {
6341
6353
  type: "hello",
6342
6354
  protocol: PROTOCOL_VERSION,
6343
- version: "1.5.5",
6355
+ version: "1.5.6",
6344
6356
  agents: this.config.agents.list.map((a) => ({
6345
6357
  id: a.id,
6346
6358
  name: a.name || a.id,
@@ -7735,7 +7747,7 @@ async function runTui(opts) {
7735
7747
  ws.on("open", () => {
7736
7748
  ws.send(JSON.stringify({
7737
7749
  type: "connect",
7738
- params: { auth: { token }, mode: "tui", version: "1.5.5" }
7750
+ params: { auth: { token }, mode: "tui", version: "1.5.6" }
7739
7751
  }));
7740
7752
  });
7741
7753
  ws.on("message", (data) => {
@@ -8164,7 +8176,7 @@ import { fileURLToPath as fileURLToPath5 } from "url";
8164
8176
  import { dirname as dirname5, join as join19 } from "path";
8165
8177
  var __filename3 = fileURLToPath5(import.meta.url);
8166
8178
  var __dirname3 = dirname5(__filename3);
8167
- var version = "1.5.5";
8179
+ var version = "1.5.6";
8168
8180
  try {
8169
8181
  const pkg = JSON.parse(readFileSync(join19(__dirname3, "..", "package.json"), "utf-8"));
8170
8182
  version = pkg.version;