mirror of
https://github.com/Jeuners/agenttwo-tools.git
synced 2026-09-09 15:02:31 +02:00
fix: Dezimalkomma im Rechner, Anhang-Vorschau über der Eingabezeile
Beide Fehler zeigten sich beim Durchspielen mit einem Bild in der laufenden Oberfläche: - calculate lehnte "87,50" ab. Das Modell rechnet bei deutschen Beträgen natürlicherweise mit Komma und musste einen Aufruf verschwenden, um sich selbst zu korrigieren — sichtbar als fehlgeschlagener erster Aufruf. Der Tokenizer nimmt Komma jetzt als Dezimaltrenner an, die Beschreibung des Werkzeugs sagt das auch. Danach genügten zwei Aufrufe statt drei. - Die Anhang-Vorschau saß neben der Eingabezeile statt darüber: .composer war bereits eine Flex-Zeile, wodurch .attachments zum Flex-Geschwister wurde. Der Container ist jetzt eine Spalte, .composer-row übernimmt die Zeile. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01S1NXUpHbxTusqQmsjrFfbU
This commit is contained in:
parent
33125e1420
commit
9936b35b48
2 changed files with 15 additions and 4 deletions
|
|
@ -18,10 +18,12 @@ function tokenize(input: string): Token[] {
|
||||||
while (i < input.length) {
|
while (i < input.length) {
|
||||||
const c = input[i];
|
const c = input[i];
|
||||||
if (/\s/.test(c)) { i++; continue; }
|
if (/\s/.test(c)) { i++; continue; }
|
||||||
if (/[0-9.]/.test(c)) {
|
if (/[0-9.,]/.test(c)) {
|
||||||
let num = "";
|
let num = "";
|
||||||
while (i < input.length && /[0-9._]/.test(input[i])) num += input[i++];
|
while (i < input.length && /[0-9._,]/.test(input[i])) num += input[i++];
|
||||||
const value = Number(num.replace(/_/g, ""));
|
// Das Modell rechnet mit deutschen Beträgen und schreibt "87,50".
|
||||||
|
// Komma gilt deshalb als Dezimaltrenner.
|
||||||
|
const value = Number(num.replace(/_/g, "").replace(",", "."));
|
||||||
if (!Number.isFinite(value)) throw new ToolError(`Ungültige Zahl: ${num}`);
|
if (!Number.isFinite(value)) throw new ToolError(`Ungültige Zahl: ${num}`);
|
||||||
tokens.push({ kind: "num", value });
|
tokens.push({ kind: "num", value });
|
||||||
continue;
|
continue;
|
||||||
|
|
@ -95,7 +97,8 @@ export const calculateTool: Tool = {
|
||||||
name: "calculate",
|
name: "calculate",
|
||||||
description:
|
description:
|
||||||
"Berechnet einen arithmetischen Ausdruck exakt. Nutze dies für jede " +
|
"Berechnet einen arithmetischen Ausdruck exakt. Nutze dies für jede " +
|
||||||
"Rechnung statt selbst zu rechnen. Erlaubt: + - * / % ^ und Klammern.",
|
"Rechnung statt selbst zu rechnen. Erlaubt: + - * / % ^ und Klammern. " +
|
||||||
|
"Dezimaltrenner darf Punkt oder Komma sein (87.50 wie 87,50).",
|
||||||
parameters: {
|
parameters: {
|
||||||
type: "object",
|
type: "object",
|
||||||
properties: {
|
properties: {
|
||||||
|
|
|
||||||
|
|
@ -545,6 +545,14 @@ body {
|
||||||
outline-offset: -4px;
|
outline-offset: -4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* .composer ist ursprünglich eine Flex-Zeile. Die Anhang-Vorschau gehört
|
||||||
|
darüber, deshalb wird der Container zur Spalte und .composer-row übernimmt
|
||||||
|
die frühere Zeilen-Rolle. */
|
||||||
|
.composer {
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: stretch;
|
||||||
|
}
|
||||||
|
|
||||||
.composer-row {
|
.composer-row {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: flex-end;
|
align-items: flex-end;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue