@halfagiraf/clawx 0.1.30 → 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 +4 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +28 -8
- package/dist/config/index.js.map +1 -1
- package/dist/core/text-tool-parser.d.ts.map +1 -1
- package/dist/core/text-tool-parser.js +61 -8
- package/dist/core/text-tool-parser.js.map +1 -1
- package/package.json +1 -1
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":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAa,MAAM,mBAAmB,CAAC;AAyDhE,yCAAyC;AACzC,wBAAgB,kBAAkB,IAAI,MAAM,CAK3C;AAED,kDAAkD;AAClD,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAa,MAAM,mBAAmB,CAAC;AAyDhE,yCAAyC;AACzC,wBAAgB,kBAAkB,IAAI,MAAM,CAK3C;AAED,kDAAkD;AAClD,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAWD,wBAAgB,UAAU,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CA8FxE"}
|
package/dist/config/index.js
CHANGED
|
@@ -66,6 +66,14 @@ export function getGlobalConfigDir() {
|
|
|
66
66
|
export function getGlobalConfigPath() {
|
|
67
67
|
return path.join(getGlobalConfigDir(), "config");
|
|
68
68
|
}
|
|
69
|
+
/** Default base URLs for known providers */
|
|
70
|
+
const PROVIDER_BASE_URLS = {
|
|
71
|
+
ollama: "http://localhost:11434/v1",
|
|
72
|
+
local: "http://localhost:8080/v1",
|
|
73
|
+
deepseek: "https://api.deepseek.com/v1",
|
|
74
|
+
openai: "https://api.openai.com/v1",
|
|
75
|
+
anthropic: "https://api.anthropic.com",
|
|
76
|
+
};
|
|
69
77
|
export function loadConfig(overrides) {
|
|
70
78
|
// Load config in priority order:
|
|
71
79
|
// 1. cwd/.env (project-level)
|
|
@@ -85,15 +93,27 @@ export function loadConfig(overrides) {
|
|
|
85
93
|
const env = process.env;
|
|
86
94
|
const workDir = env.CLAWDEX_WORK_DIR || overrides?.workDir || DEFAULTS.workDir;
|
|
87
95
|
const jsonConfig = loadJsonConfig(workDir);
|
|
96
|
+
// When --provider is set via CLI but --base-url is not, derive the base URL
|
|
97
|
+
// from the provider instead of falling through to env vars (which may be for
|
|
98
|
+
// a different provider entirely, e.g. .env has deepseek but CLI says ollama)
|
|
99
|
+
const resolvedProvider = overrides?.provider ||
|
|
100
|
+
env.CLAWDEX_PROVIDER ||
|
|
101
|
+
jsonConfig.provider ||
|
|
102
|
+
DEFAULTS.provider;
|
|
103
|
+
let resolvedBaseUrl;
|
|
104
|
+
if (overrides?.baseUrl) {
|
|
105
|
+
resolvedBaseUrl = overrides.baseUrl;
|
|
106
|
+
}
|
|
107
|
+
else if (overrides?.provider) {
|
|
108
|
+
// CLI specified --provider but not --base-url: use provider default
|
|
109
|
+
resolvedBaseUrl = PROVIDER_BASE_URLS[overrides.provider] || env.CLAWDEX_BASE_URL || DEFAULTS.baseUrl;
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
resolvedBaseUrl = env.CLAWDEX_BASE_URL || jsonConfig.baseUrl || DEFAULTS.baseUrl;
|
|
113
|
+
}
|
|
88
114
|
const config = {
|
|
89
|
-
provider:
|
|
90
|
-
|
|
91
|
-
jsonConfig.provider ||
|
|
92
|
-
DEFAULTS.provider,
|
|
93
|
-
baseUrl: overrides?.baseUrl ||
|
|
94
|
-
env.CLAWDEX_BASE_URL ||
|
|
95
|
-
jsonConfig.baseUrl ||
|
|
96
|
-
DEFAULTS.baseUrl,
|
|
115
|
+
provider: resolvedProvider,
|
|
116
|
+
baseUrl: resolvedBaseUrl,
|
|
97
117
|
model: overrides?.model ||
|
|
98
118
|
env.CLAWDEX_MODEL ||
|
|
99
119
|
jsonConfig.model ||
|
package/dist/config/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,QAAQ,CAAC;AAG9C,MAAM,QAAQ,GAAgB;IAC5B,QAAQ,EAAE,oBAAoB;IAC9B,OAAO,EAAE,0BAA0B;IACnC,KAAK,EAAE,4BAA4B;IACnC,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE;IACtB,KAAK,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW;IAC7D,WAAW,EAAE,OAAO;IACpB,aAAa,EAAE,QAAQ;IACvB,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE,IAAI,CAAC,IAAI,CACnB,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,EAClD,QAAQ,EACR,UAAU,CACX;IACD,UAAU,EAAE,EAAE;CACf,CAAC;AAEF,SAAS,eAAe,CAAC,GAAW;IAClC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,EAAE,CAAC;QAC7D,OAAO,MAAmC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB;IACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAyB,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,OAAe;IACrC,2CAA2C;IAC3C,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;IAC7D,yDAAyD;IACzD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;IAC3E,yDAAyD;IACzD,MAAM,gBAAgB,GAAG;QACvB,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;QAC5B,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;KAC5B,CAAC;IACF,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACvC,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC;IACvC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,CAAC,IAAI,CACd,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,EAClD,QAAQ,CACT,CAAC;AACJ,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED,4CAA4C;AAC5C,MAAM,kBAAkB,GAA2B;IACjD,MAAM,EAAE,2BAA2B;IACnC,KAAK,EAAE,0BAA0B;IACjC,QAAQ,EAAE,6BAA6B;IACvC,MAAM,EAAE,2BAA2B;IACnC,SAAS,EAAE,2BAA2B;CACvC,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,SAAgC;IACzD,iCAAiC;IACjC,8BAA8B;IAC9B,wDAAwD;IACxD,mDAAmD;IACnD,UAAU,EAAE,CAAC;IACb,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAClC,MAAM,YAAY,GAAG,mBAAmB,EAAE,CAAC;QAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAChC,UAAU,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAC9B,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,EAC9D,UAAU,CACX,CAAC;QACF,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACxB,MAAM,OAAO,GAAG,GAAG,CAAC,gBAAgB,IAAI,SAAS,EAAE,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC;IAC/E,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAE3C,4EAA4E;IAC5E,6EAA6E;IAC7E,6EAA6E;IAC7E,MAAM,gBAAgB,GACpB,SAAS,EAAE,QAAQ;QACnB,GAAG,CAAC,gBAAgB;QACpB,UAAU,CAAC,QAAQ;QACnB,QAAQ,CAAC,QAAQ,CAAC;IAEpB,IAAI,eAAuB,CAAC;IAC5B,IAAI,SAAS,EAAE,OAAO,EAAE,CAAC;QACvB,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC;IACtC,CAAC;SAAM,IAAI,SAAS,EAAE,QAAQ,EAAE,CAAC;QAC/B,oEAAoE;QACpE,eAAe,GAAG,kBAAkB,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,gBAAgB,IAAI,QAAQ,CAAC,OAAO,CAAC;IACvG,CAAC;SAAM,CAAC;QACN,eAAe,GAAG,GAAG,CAAC,gBAAgB,IAAI,UAAU,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC;IACnF,CAAC;IAED,MAAM,MAAM,GAAgB;QAC1B,QAAQ,EAAE,gBAAgB;QAC1B,OAAO,EAAE,eAAe;QACxB,KAAK,EACH,SAAS,EAAE,KAAK;YAChB,GAAG,CAAC,aAAa;YACjB,UAAU,CAAC,KAAK;YAChB,QAAQ,CAAC,KAAK;QAChB,MAAM,EACJ,SAAS,EAAE,MAAM;YACjB,GAAG,CAAC,eAAe;YACnB,GAAG,CAAC,cAAc;YAClB,GAAG,CAAC,iBAAiB;YACrB,UAAU,CAAC,MAAM;YACjB,QAAQ,CAAC,MAAM;QACjB,OAAO;QACP,KAAK,EACH,SAAS,EAAE,KAAK;YAChB,GAAG,CAAC,aAAa;YACjB,GAAG,CAAC,KAAK;YACT,UAAU,CAAC,KAAK;YAChB,QAAQ,CAAC,KAAK;QAChB,WAAW,EACT,SAAS,EAAE,WAAW;YACtB,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,UAAU,CAAC,WAAW;YACtB,QAAQ,CAAC,WAAW;QACtB,aAAa,EACX,CAAC,SAAS,EAAE,aAAa;YACvB,GAAG,CAAC,sBAAsB;YAC1B,UAAU,CAAC,aAAa;YACxB,QAAQ,CAAC,aAAa,CAAiC;QAC3D,SAAS,EACP,SAAS,EAAE,SAAS;YACpB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnE,UAAU,CAAC,SAAS;YACpB,QAAQ,CAAC,SAAS;QACpB,UAAU,EACR,SAAS,EAAE,UAAU;YACrB,GAAG,CAAC,mBAAmB;YACvB,UAAU,CAAC,UAAU;YACrB,QAAQ,CAAC,UAAU;QACrB,UAAU,EACR,SAAS,EAAE,UAAU;YACrB,CAAC,GAAG,CAAC,mBAAmB;gBACtB,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,mBAAmB,CAAC;gBAC1C,CAAC,CAAC,UAAU,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC;QACnD,YAAY,EAAE,SAAS,EAAE,YAAY,IAAI,UAAU,CAAC,YAAY;KACjE,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -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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"}
|