@halfagiraf/clawx 0.1.31 → 0.1.32
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/README.md
CHANGED
|
@@ -68,6 +68,10 @@ clawx "Create a Flask app with auth and a SQLite database"
|
|
|
68
68
|
# Single-shot run (headless, exits when done)
|
|
69
69
|
clawx run "Create a hello world Express server"
|
|
70
70
|
|
|
71
|
+
# Use a specific model/provider without switching profile
|
|
72
|
+
clawx --model qwen2.5-coder:7b-instruct --provider ollama
|
|
73
|
+
clawx --model deepseek-chat --provider deepseek
|
|
74
|
+
|
|
71
75
|
# Basic readline REPL (fallback if TUI has issues)
|
|
72
76
|
clawx --basic
|
|
73
77
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-tool-parser.d.ts","sourceRoot":"","sources":["../../src/core/text-tool-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAEL,KAAK,2BAA2B,EAIhC,KAAK,OAAO,EACZ,KAAK,mBAAmB,EACxB,KAAK,GAAG,EACR,KAAK,KAAK,EACX,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"text-tool-parser.d.ts","sourceRoot":"","sources":["../../src/core/text-tool-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAEL,KAAK,2BAA2B,EAIhC,KAAK,OAAO,EACZ,KAAK,mBAAmB,EACxB,KAAK,GAAG,EACR,KAAK,KAAK,EACX,MAAM,qBAAqB,CAAC;AAqI7B;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,IACvB,IAAI,SAAS,GAAG,EAClD,OAAO,KAAK,CAAC,IAAI,CAAC,EAClB,SAAS,OAAO,EAChB,UAAU,mBAAmB,KAC5B,2BAA2B,CA2F/B"}
|
|
@@ -65,15 +65,65 @@ function tryParseOneToolCall(jsonStr, tools) {
|
|
|
65
65
|
arguments: parsed.arguments,
|
|
66
66
|
};
|
|
67
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Extract JSON objects from text by matching balanced braces.
|
|
70
|
+
* Finds top-level {...} blocks that could be tool call JSON.
|
|
71
|
+
*/
|
|
72
|
+
function extractJsonObjects(text) {
|
|
73
|
+
const results = [];
|
|
74
|
+
let i = 0;
|
|
75
|
+
while (i < text.length) {
|
|
76
|
+
if (text[i] === "{") {
|
|
77
|
+
let depth = 0;
|
|
78
|
+
let inString = false;
|
|
79
|
+
let escape = false;
|
|
80
|
+
const start = i;
|
|
81
|
+
for (let j = i; j < text.length; j++) {
|
|
82
|
+
const ch = text[j];
|
|
83
|
+
if (escape) {
|
|
84
|
+
escape = false;
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
if (ch === "\\" && inString) {
|
|
88
|
+
escape = true;
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
if (ch === '"') {
|
|
92
|
+
inString = !inString;
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
if (inString)
|
|
96
|
+
continue;
|
|
97
|
+
if (ch === "{")
|
|
98
|
+
depth++;
|
|
99
|
+
else if (ch === "}") {
|
|
100
|
+
depth--;
|
|
101
|
+
if (depth === 0) {
|
|
102
|
+
results.push(text.slice(start, j + 1));
|
|
103
|
+
i = j + 1;
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
if (j === text.length - 1)
|
|
108
|
+
i = j + 1; // unclosed brace, skip
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
i++;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return results;
|
|
116
|
+
}
|
|
68
117
|
/**
|
|
69
118
|
* Parse text-based tool calls from message content.
|
|
70
119
|
* Returns an array of ToolCalls found (may be empty).
|
|
71
120
|
*
|
|
72
121
|
* Handles:
|
|
73
122
|
* - Single raw JSON: {"name": "write", "arguments": {...}}
|
|
74
|
-
* - Multiple
|
|
123
|
+
* - Multiple JSON objects in one response (back-to-back or separated by text)
|
|
124
|
+
* - Code-fenced blocks with any language label: ```bash\n{...}\n```
|
|
75
125
|
* - <tool_call> tags: <tool_call>{...}</tool_call>
|
|
76
|
-
* -
|
|
126
|
+
* - JSON embedded in explanatory prose
|
|
77
127
|
*/
|
|
78
128
|
function parseTextToolCalls(text, tools) {
|
|
79
129
|
const results = [];
|
|
@@ -87,8 +137,8 @@ function parseTextToolCalls(text, tools) {
|
|
|
87
137
|
}
|
|
88
138
|
if (results.length > 0)
|
|
89
139
|
return results;
|
|
90
|
-
// 2. Try code-fenced
|
|
91
|
-
const fenceRegex =
|
|
140
|
+
// 2. Try code-fenced blocks with any language label (json, bash, etc.)
|
|
141
|
+
const fenceRegex = /```\w*\s*\n?([\s\S]*?)\n?\s*```/g;
|
|
92
142
|
let fenceMatch;
|
|
93
143
|
while ((fenceMatch = fenceRegex.exec(text)) !== null) {
|
|
94
144
|
const tc = tryParseOneToolCall(fenceMatch[1], tools);
|
|
@@ -97,10 +147,13 @@ function parseTextToolCalls(text, tools) {
|
|
|
97
147
|
}
|
|
98
148
|
if (results.length > 0)
|
|
99
149
|
return results;
|
|
100
|
-
// 3.
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
|
|
150
|
+
// 3. Find all JSON objects in the text (handles back-to-back, embedded in prose, etc.)
|
|
151
|
+
const jsonBlocks = extractJsonObjects(text);
|
|
152
|
+
for (const block of jsonBlocks) {
|
|
153
|
+
const tc = tryParseOneToolCall(block, tools);
|
|
154
|
+
if (tc)
|
|
155
|
+
results.push(tc);
|
|
156
|
+
}
|
|
104
157
|
return results;
|
|
105
158
|
}
|
|
106
159
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-tool-parser.js","sourceRoot":"","sources":["../../src/core/text-tool-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,YAAY,GASb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iCAAiC,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAEzC,kDAAkD;AAClD,MAAM,aAAa,GAA2B;IAC5C,UAAU,EAAE,OAAO;IACnB,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,MAAM;IACjB,WAAW,EAAE,MAAM;IACnB,OAAO,EAAE,MAAM;IACf,KAAK,EAAE,MAAM;IACb,QAAQ,EAAE,IAAI;IACd,cAAc,EAAE,IAAI;IACpB,MAAM,EAAE,MAAM;IACd,UAAU,EAAE,MAAM;IAClB,GAAG,EAAE,SAAS;IACd,WAAW,EAAE,SAAS;CACvB,CAAC;AAEF;;GAEG;AACH,SAAS,mBAAmB,CAAC,OAAe,EAAE,KAAe;IAC3D,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACjD,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3E,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;IAC3B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACrC,QAAQ,GAAG,MAAM,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,UAAmB;QACzB,EAAE,EAAE,WAAW,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QACrE,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC;AACJ,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"text-tool-parser.js","sourceRoot":"","sources":["../../src/core/text-tool-parser.ts"],"names":[],"mappings":"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"}
|