@iinm/plain-agent
Advanced tools
+1
-1
| { | ||
| "name": "@iinm/plain-agent", | ||
| "version": "1.15.2", | ||
| "version": "1.15.3", | ||
| "description": "A lightweight terminal-based coding agent focused on safety and low token cost", | ||
@@ -5,0 +5,0 @@ "license": "MIT", |
+1
-1
| # Plain Agent | ||
| [](https://github.com/iinm/plain-agent/actions/workflows/github-code-scanning/codeql) | ||
| [](https://socket.dev/npm/package/@iinm/plain-agent) | ||
| [](https://socket.dev/npm/package/@iinm/plain-agent) | ||
| [](https://packagephobia.com/result?p=@iinm/plain-agent) | ||
@@ -6,0 +6,0 @@ |
@@ -266,5 +266,6 @@ /** | ||
| if (toolResult.toolName === "read_file") { | ||
| return contentString.replace( | ||
| /^(\s*\d+:[0-9a-f]{2}\|)/gm, | ||
| styleText("gray", "$1"), | ||
| const lineCount = contentString.split("\n").length; | ||
| return styleText( | ||
| "gray", | ||
| `(read_file output: ${lineCount} line${lineCount === 1 ? "" : "s"})`, | ||
| ); | ||
@@ -271,0 +272,0 @@ } |
@@ -374,3 +374,3 @@ /** | ||
| if (partialContent.type === "tool_use") { | ||
| if (["thinking", "tool_use"].includes(partialContent.type)) { | ||
| state.toolSpinnerIndex = 0; | ||
@@ -386,3 +386,3 @@ state.toolSpinnerLastTime = Date.now(); | ||
| if (partialContent.content) { | ||
| if (partialContent.type === "tool_use") { | ||
| if (["thinking", "tool_use"].includes(partialContent.type)) { | ||
| const now = Date.now(); | ||
@@ -404,3 +404,3 @@ if (now - state.toolSpinnerLastTime >= SPINNER_INTERVAL_MS) { | ||
| if (partialContent.position === "stop") { | ||
| if (partialContent.type === "tool_use") { | ||
| if (["thinking", "tool_use"].includes(partialContent.type)) { | ||
| // Clear current line, move up one line, and clear that line too | ||
@@ -407,0 +407,0 @@ process.stdout.write("\x1b[2K\x1b[1F\x1b[2K"); |
@@ -591,2 +591,9 @@ /** | ||
| if (firstChoice?.delta.content) { | ||
| const lastContent = partialContents.at(-1); | ||
| if (lastContent && lastContent.type !== "text") { | ||
| partialContents.push({ | ||
| type: lastContent.type, | ||
| position: "stop", | ||
| }); | ||
| } | ||
| partialContents.push({ | ||
@@ -600,2 +607,9 @@ type: "text", | ||
| if (firstChoice?.delta.tool_calls) { | ||
| const lastContent = partialContents.at(-1); | ||
| if (lastContent && lastContent.type !== "tool_use") { | ||
| partialContents.push({ | ||
| type: lastContent.type, | ||
| position: "stop", | ||
| }); | ||
| } | ||
| partialContents.push({ | ||
@@ -602,0 +616,0 @@ type: "tool_use", |
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
606191
0.09%17173
0.09%