@pentoshi/clai 0.2.4 → 0.2.7
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/dist/agent/runner.d.ts +1 -0
- package/dist/agent/runner.js +105 -29
- package/dist/agent/runner.js.map +1 -1
- package/dist/commands/update.js +1 -1
- package/dist/index.js +29 -9
- package/dist/index.js.map +1 -1
- package/dist/llm/router.js +26 -3
- package/dist/llm/router.js.map +1 -1
- package/dist/modes/agent.d.ts +1 -0
- package/dist/modes/agent.js.map +1 -1
- package/dist/prompts/index.js +6 -2
- package/dist/prompts/index.js.map +1 -1
- package/dist/repl.js +92 -82
- package/dist/repl.js.map +1 -1
- package/dist/store/config.js +1 -0
- package/dist/store/config.js.map +1 -1
- package/dist/tools/registry.d.ts +5 -2
- package/dist/tools/registry.js +19 -11
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/shell.d.ts +1 -0
- package/dist/tools/shell.js +87 -12
- package/dist/tools/shell.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/ui/thinking.d.ts +20 -0
- package/dist/ui/thinking.js +167 -0
- package/dist/ui/thinking.js.map +1 -0
- package/package.json +1 -1
package/dist/repl.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { emitKeypressEvents } from "node:readline";
|
|
1
2
|
import readline from "node:readline/promises";
|
|
2
3
|
import { stdin as input, stdout as output } from "node:process";
|
|
3
4
|
import chalk from "chalk";
|
|
@@ -9,6 +10,7 @@ import { listSessions, saveSession } from "./store/history.js";
|
|
|
9
10
|
import { assertProvider, defaultModels } from "./llm/provider.js";
|
|
10
11
|
import { runUpdate, checkForUpdateSilent, getCurrentVersion } from "./commands/update.js";
|
|
11
12
|
import { renderBanner, renderSessionInfo, renderSuggestions, renderModeSwitch, renderProviderSwitch, PROMPT, } from "./ui/banner.js";
|
|
13
|
+
import { clearThinking, createThinkingStreamParser, getLastThinking, rememberThinkingFromText, renderThinkingBlock, renderThinkingSummary, renderThinkingToggleMessage, } from "./ui/thinking.js";
|
|
12
14
|
// ── Well-known models per provider ─────────────────────────────────────────
|
|
13
15
|
const knownModels = {
|
|
14
16
|
groq: [
|
|
@@ -52,85 +54,62 @@ const knownModels = {
|
|
|
52
54
|
};
|
|
53
55
|
// ── Abort controller for streaming cancellation ─────────────────────────────
|
|
54
56
|
let currentAbortController = null;
|
|
57
|
+
class AbortRunError extends Error {
|
|
58
|
+
constructor() {
|
|
59
|
+
super("Aborted.");
|
|
60
|
+
this.name = "AbortRunError";
|
|
61
|
+
}
|
|
62
|
+
}
|
|
55
63
|
function splitCommand(line) {
|
|
56
64
|
return (line
|
|
57
65
|
.match(/(?:[^\s"]+|"[^"]*")+/g)
|
|
58
66
|
?.map((part) => part.replace(/^"|"$/g, "")) ?? []);
|
|
59
67
|
}
|
|
60
|
-
// ── Strip / collapse <think> blocks ─────────────────────────────────────────
|
|
61
|
-
let lastThinkContent = "";
|
|
62
|
-
function stripThinking(text) {
|
|
63
|
-
const thinkBlocks = [];
|
|
64
|
-
const visible = text.replace(/<think>([\s\S]*?)<\/think>/gi, (_, content) => {
|
|
65
|
-
thinkBlocks.push(content.trim());
|
|
66
|
-
return "";
|
|
67
|
-
}).trim();
|
|
68
|
-
const hasThinking = thinkBlocks.length > 0;
|
|
69
|
-
const thinkContent = thinkBlocks.join("\n\n");
|
|
70
|
-
return { visible, hasThinking, thinkContent };
|
|
71
|
-
}
|
|
72
68
|
// Stream a response while hiding <think> blocks and handling ESC abort
|
|
73
|
-
async function streamWithAbort(run) {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
lastThinkContent = "";
|
|
77
|
-
let buffer = "";
|
|
78
|
-
let visibleBuffer = "";
|
|
79
|
-
let inThink = false;
|
|
80
|
-
let thinkBuffer = "";
|
|
69
|
+
async function streamWithAbort(run, signal) {
|
|
70
|
+
let sawToken = false;
|
|
71
|
+
const parser = createThinkingStreamParser((text) => process.stdout.write(text));
|
|
81
72
|
const onToken = (token) => {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
let remaining = token;
|
|
85
|
-
while (remaining.length > 0) {
|
|
86
|
-
if (inThink) {
|
|
87
|
-
const closeIdx = remaining.indexOf("</think>");
|
|
88
|
-
if (closeIdx >= 0) {
|
|
89
|
-
thinkBuffer += remaining.slice(0, closeIdx);
|
|
90
|
-
lastThinkContent = thinkBuffer.trim();
|
|
91
|
-
inThink = false;
|
|
92
|
-
remaining = remaining.slice(closeIdx + 8);
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
thinkBuffer += remaining;
|
|
96
|
-
remaining = "";
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
const openIdx = remaining.indexOf("<think>");
|
|
101
|
-
if (openIdx >= 0) {
|
|
102
|
-
const before = remaining.slice(0, openIdx);
|
|
103
|
-
if (before) {
|
|
104
|
-
process.stdout.write(before);
|
|
105
|
-
visibleBuffer += before;
|
|
106
|
-
}
|
|
107
|
-
inThink = true;
|
|
108
|
-
thinkBuffer = "";
|
|
109
|
-
remaining = remaining.slice(openIdx + 7);
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
process.stdout.write(remaining);
|
|
113
|
-
visibleBuffer += remaining;
|
|
114
|
-
remaining = "";
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
73
|
+
sawToken = true;
|
|
74
|
+
parser.push(token);
|
|
118
75
|
};
|
|
119
76
|
try {
|
|
120
|
-
const raw = await run(
|
|
121
|
-
|
|
122
|
-
|
|
77
|
+
const raw = await run(signal, onToken);
|
|
78
|
+
const result = sawToken ? parser.finish() : rememberThinkingFromText(raw);
|
|
79
|
+
if (!sawToken && result.visible)
|
|
80
|
+
process.stdout.write(result.visible);
|
|
81
|
+
if (result.hasThinking) {
|
|
82
|
+
const prefix = result.visible && !result.visible.endsWith("\n") ? "\n" : "";
|
|
83
|
+
process.stdout.write(`${prefix}${renderThinkingSummary(result.thinkContent)}\n`);
|
|
123
84
|
}
|
|
124
|
-
return
|
|
85
|
+
return result.visible;
|
|
125
86
|
}
|
|
126
87
|
catch (err) {
|
|
127
|
-
|
|
88
|
+
const result = parser.finish();
|
|
89
|
+
if (signal.aborted) {
|
|
128
90
|
process.stdout.write(chalk.yellow("\n ⏹ Aborted.\n"));
|
|
129
|
-
return
|
|
91
|
+
return result.visible;
|
|
130
92
|
}
|
|
131
93
|
throw err;
|
|
132
94
|
}
|
|
95
|
+
}
|
|
96
|
+
async function withAbortableInput(run) {
|
|
97
|
+
const ac = new AbortController();
|
|
98
|
+
currentAbortController = ac;
|
|
99
|
+
if (input.isTTY)
|
|
100
|
+
input.setRawMode(true);
|
|
101
|
+
try {
|
|
102
|
+
return await run(ac.signal);
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
if (ac.signal.aborted || (error instanceof Error && error.name === "AbortError")) {
|
|
106
|
+
throw new AbortRunError();
|
|
107
|
+
}
|
|
108
|
+
throw error;
|
|
109
|
+
}
|
|
133
110
|
finally {
|
|
111
|
+
if (input.isTTY)
|
|
112
|
+
input.setRawMode(false);
|
|
134
113
|
currentAbortController = null;
|
|
135
114
|
}
|
|
136
115
|
}
|
|
@@ -149,6 +128,7 @@ function help() {
|
|
|
149
128
|
["/save <name>", "save session"],
|
|
150
129
|
["/cwd <path>", "change working directory"],
|
|
151
130
|
["/allow <tool>", "allow a tool for session"],
|
|
131
|
+
["/think", "show thinking from last response"],
|
|
152
132
|
["/update", "check for updates"],
|
|
153
133
|
["/exit", "quit"],
|
|
154
134
|
["/help", "list commands"],
|
|
@@ -157,7 +137,7 @@ function help() {
|
|
|
157
137
|
const lines = cmds
|
|
158
138
|
.map((c) => ` ${chalk.cyan(c[0].padEnd(maxCmd + 2))}${chalk.dim(c[1])}`)
|
|
159
139
|
.join("\n");
|
|
160
|
-
return lines + chalk.dim("\n\n ESC / Ctrl+C abort current response");
|
|
140
|
+
return lines + chalk.dim("\n\n ESC / Ctrl+C abort current response │ Ctrl+T toggle thinking");
|
|
161
141
|
}
|
|
162
142
|
function showModelPicker(provider) {
|
|
163
143
|
const models = knownModels[provider] ?? [];
|
|
@@ -284,10 +264,9 @@ async function handleSlash(line, state) {
|
|
|
284
264
|
}
|
|
285
265
|
case "/think":
|
|
286
266
|
case "/thinking": {
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
console.log(
|
|
290
|
-
console.log(chalk.dim("───────────────────────────────────────────────"));
|
|
267
|
+
const thinking = getLastThinking();
|
|
268
|
+
if (thinking) {
|
|
269
|
+
console.log(renderThinkingBlock(thinking));
|
|
291
270
|
}
|
|
292
271
|
else {
|
|
293
272
|
console.log(chalk.dim(" No thinking from last response."));
|
|
@@ -310,22 +289,41 @@ async function handleSlash(line, state) {
|
|
|
310
289
|
}
|
|
311
290
|
export async function startRepl(options = {}) {
|
|
312
291
|
const config = getConfig();
|
|
292
|
+
const provider = options.provider ? assertProvider(options.provider) : config.defaultProvider;
|
|
313
293
|
const state = {
|
|
314
294
|
mode: options.mode ?? config.defaultMode,
|
|
315
|
-
provider
|
|
316
|
-
model: options.model ??
|
|
295
|
+
provider,
|
|
296
|
+
model: options.model ?? getProviderModel(provider),
|
|
317
297
|
messages: [],
|
|
318
298
|
};
|
|
319
|
-
if (options.provider) {
|
|
320
|
-
state.provider = assertProvider(options.provider);
|
|
321
|
-
}
|
|
322
299
|
const rl = readline.createInterface({ input, output });
|
|
323
|
-
|
|
300
|
+
emitKeypressEvents(input, rl);
|
|
301
|
+
// ── ESC / Ctrl+C abort; Ctrl+T toggles hidden thinking ──────────────────
|
|
324
302
|
if (process.stdin.isTTY) {
|
|
325
303
|
process.stdin.setRawMode(false); // keep readline in control
|
|
326
304
|
}
|
|
305
|
+
const handleThinkingShortcut = () => {
|
|
306
|
+
process.stdout.write(`\n${renderThinkingToggleMessage()}\n`);
|
|
307
|
+
};
|
|
308
|
+
const handleKeypress = (_sequence, key) => {
|
|
309
|
+
if (key.ctrl && key.name === "t")
|
|
310
|
+
handleThinkingShortcut();
|
|
311
|
+
if ((key.name === "escape" || (key.ctrl && key.name === "c")) && currentAbortController) {
|
|
312
|
+
currentAbortController.abort();
|
|
313
|
+
}
|
|
314
|
+
};
|
|
315
|
+
input.on("keypress", handleKeypress);
|
|
316
|
+
const siginfo = "SIGINFO";
|
|
317
|
+
let siginfoRegistered = false;
|
|
318
|
+
try {
|
|
319
|
+
process.on(siginfo, handleThinkingShortcut);
|
|
320
|
+
siginfoRegistered = true;
|
|
321
|
+
}
|
|
322
|
+
catch {
|
|
323
|
+
// SIGINFO is macOS/BSD-specific; other platforms can still use /think.
|
|
324
|
+
}
|
|
327
325
|
// Ctrl+C while streaming → abort; otherwise readline handles it
|
|
328
|
-
|
|
326
|
+
const handleSigint = () => {
|
|
329
327
|
if (currentAbortController) {
|
|
330
328
|
currentAbortController.abort();
|
|
331
329
|
}
|
|
@@ -334,7 +332,8 @@ export async function startRepl(options = {}) {
|
|
|
334
332
|
console.log();
|
|
335
333
|
process.exit(0);
|
|
336
334
|
}
|
|
337
|
-
}
|
|
335
|
+
};
|
|
336
|
+
process.on("SIGINT", handleSigint);
|
|
338
337
|
// ── Startup banner ──────────────────────────────────────────────────────
|
|
339
338
|
console.log(renderBanner(getCurrentVersion()));
|
|
340
339
|
console.log(renderSessionInfo({
|
|
@@ -344,7 +343,7 @@ export async function startRepl(options = {}) {
|
|
|
344
343
|
mode: state.mode,
|
|
345
344
|
}));
|
|
346
345
|
console.log(renderSuggestions());
|
|
347
|
-
console.log(chalk.dim(" ESC / Ctrl+C to abort a response │ /model to list models │ /think
|
|
346
|
+
console.log(chalk.dim(" ESC / Ctrl+C to abort a response │ /model to list models │ Ctrl+T or /think for thinking\n"));
|
|
348
347
|
// Non-blocking update check
|
|
349
348
|
checkForUpdateSilent();
|
|
350
349
|
try {
|
|
@@ -359,33 +358,44 @@ export async function startRepl(options = {}) {
|
|
|
359
358
|
continue;
|
|
360
359
|
}
|
|
361
360
|
try {
|
|
361
|
+
clearThinking();
|
|
362
|
+
let assistantContent = "";
|
|
362
363
|
if (state.mode === "ask") {
|
|
363
|
-
await streamWithAbort(async (
|
|
364
|
+
assistantContent = await withAbortableInput(async (signal) => streamWithAbort(async (runSignal, onToken) => {
|
|
364
365
|
return await runAskStream(line, onToken, {
|
|
365
366
|
provider: state.provider,
|
|
366
367
|
model: state.model,
|
|
367
368
|
history: state.messages,
|
|
368
|
-
signal,
|
|
369
|
+
signal: runSignal,
|
|
369
370
|
});
|
|
370
|
-
});
|
|
371
|
+
}, signal));
|
|
371
372
|
process.stdout.write("\n");
|
|
372
373
|
}
|
|
373
374
|
else {
|
|
374
|
-
await runAgent(line, {
|
|
375
|
+
assistantContent = await withAbortableInput(async (signal) => runAgent(line, {
|
|
375
376
|
provider: state.provider,
|
|
376
377
|
model: state.model,
|
|
377
378
|
history: state.messages,
|
|
378
|
-
|
|
379
|
+
signal,
|
|
380
|
+
}));
|
|
379
381
|
}
|
|
380
382
|
console.log();
|
|
381
|
-
state.messages.push({ role: "user", content: line }, { role: "assistant", content:
|
|
383
|
+
state.messages.push({ role: "user", content: line }, { role: "assistant", content: assistantContent });
|
|
382
384
|
}
|
|
383
385
|
catch (error) {
|
|
386
|
+
if (error instanceof AbortRunError) {
|
|
387
|
+
process.stdout.write(chalk.yellow("\n ⏹ Aborted.\n"));
|
|
388
|
+
continue;
|
|
389
|
+
}
|
|
384
390
|
console.error(chalk.red(error instanceof Error ? error.message : String(error)));
|
|
385
391
|
}
|
|
386
392
|
}
|
|
387
393
|
}
|
|
388
394
|
finally {
|
|
395
|
+
input.off("keypress", handleKeypress);
|
|
396
|
+
process.off("SIGINT", handleSigint);
|
|
397
|
+
if (siginfoRegistered)
|
|
398
|
+
process.off(siginfo, handleThinkingShortcut);
|
|
389
399
|
if (state.messages.length > 0) {
|
|
390
400
|
await saveSession(state.messages, `repl-${new Date().toISOString()}`);
|
|
391
401
|
}
|
package/dist/repl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repl.js","sourceRoot":"","sources":["../src/repl.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"repl.js","sourceRoot":"","sources":["../src/repl.ts"],"names":[],"mappings":"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"}
|
package/dist/store/config.js
CHANGED
package/dist/store/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/store/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAenD,MAAM,QAAQ,GAAe;IAC3B,eAAe,EAAE,MAAM;IACvB,YAAY,EAAE,aAAa,CAAC,IAAI;IAChC,WAAW,EAAE,KAAK;IAClB,cAAc,EAAE,EAAE;IAClB,gBAAgB,EAAE,EAAE;IACpB,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IAC7B,UAAU,EAAE,wBAAwB;IACpC,SAAS,EAAE,KAAK;IAChB,eAAe,EAAE,CAAC;CACnB,CAAC;AAEF,MAAM,KAAK,GAAG,IAAI,IAAI,CAAa;IACjC,WAAW,EAAE,MAAM;IACnB,QAAQ;CACT,CAAC,CAAC;AAEH,MAAM,UAAU,SAAS;IACvB,OAAO,KAAK,CAAC,KAAK,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAA0B;IACrD,MAAM,IAAI,GAAG,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG,KAAK,EAAuB,CAAC;IAC/D,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;IACnB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAoB;IACrD,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACzC,OAAO,YAAY,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAU;IACvC,OAAO,YAAY,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAoB,EAAE,KAAa;IAClE,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAC5B,MAAM,cAAc,GAAG,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;IACxE,OAAO,YAAY,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAoB;IACnD,MAAM,UAAU,GAAG,SAAS,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IACxD,OAAO,UAAU,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,KAAK,CAAC,IAAI,CAAC;AACpB,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/store/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAenD,MAAM,QAAQ,GAAe;IAC3B,eAAe,EAAE,MAAM;IACvB,YAAY,EAAE,aAAa,CAAC,IAAI;IAChC,WAAW,EAAE,KAAK;IAClB,cAAc,EAAE,EAAE;IAClB,gBAAgB,EAAE,EAAE;IACpB,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IAC7B,UAAU,EAAE,wBAAwB;IACpC,SAAS,EAAE,KAAK;IAChB,eAAe,EAAE,CAAC;CACnB,CAAC;AAEF,MAAM,KAAK,GAAG,IAAI,IAAI,CAAa;IACjC,WAAW,EAAE,MAAM;IACnB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,QAAQ;CACT,CAAC,CAAC;AAEH,MAAM,UAAU,SAAS;IACvB,OAAO,KAAK,CAAC,KAAK,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAA0B;IACrD,MAAM,IAAI,GAAG,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG,KAAK,EAAuB,CAAC;IAC/D,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;IACnB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAoB;IACrD,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACzC,OAAO,YAAY,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAU;IACvC,OAAO,YAAY,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAoB,EAAE,KAAa;IAClE,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAC5B,MAAM,cAAc,GAAG,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;IACxE,OAAO,YAAY,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAoB;IACnD,MAAM,UAAU,GAAG,SAAS,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IACxD,OAAO,UAAU,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,KAAK,CAAC,IAAI,CAAC;AACpB,CAAC"}
|
package/dist/tools/registry.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { ToolCall, ToolResult } from '../types.js';
|
|
2
|
-
export
|
|
2
|
+
export interface ToolRunOptions {
|
|
3
|
+
signal?: AbortSignal | undefined;
|
|
4
|
+
}
|
|
5
|
+
export type ToolHandler = (args: Record<string, unknown>, options?: ToolRunOptions) => Promise<ToolResult>;
|
|
3
6
|
export declare const toolRegistry: Record<string, ToolHandler>;
|
|
4
7
|
export declare function availableToolNames(): string[];
|
|
5
|
-
export declare function runToolCall(call: ToolCall): Promise<ToolResult>;
|
|
8
|
+
export declare function runToolCall(call: ToolCall, options?: ToolRunOptions): Promise<ToolResult>;
|
package/dist/tools/registry.js
CHANGED
|
@@ -19,8 +19,8 @@ function optionalNumber(args, key) {
|
|
|
19
19
|
return typeof value === 'number' ? value : undefined;
|
|
20
20
|
}
|
|
21
21
|
export const toolRegistry = {
|
|
22
|
-
async 'shell.exec'(args) {
|
|
23
|
-
return shellExec({ command: requireString(args, 'command'), cwd: optionalString(args, 'cwd'), timeoutMs: optionalNumber(args, 'timeoutMs') });
|
|
22
|
+
async 'shell.exec'(args, options) {
|
|
23
|
+
return shellExec({ command: requireString(args, 'command'), cwd: optionalString(args, 'cwd'), timeoutMs: optionalNumber(args, 'timeoutMs'), signal: options?.signal });
|
|
24
24
|
},
|
|
25
25
|
async 'fs.read'(args) {
|
|
26
26
|
return fsRead(requireString(args, 'path'));
|
|
@@ -34,16 +34,16 @@ export const toolRegistry = {
|
|
|
34
34
|
async 'fs.search'(args) {
|
|
35
35
|
return fsSearch(requireString(args, 'pattern'), optionalString(args, 'path'));
|
|
36
36
|
},
|
|
37
|
-
async 'pkg.install'(args) {
|
|
37
|
+
async 'pkg.install'(args, options) {
|
|
38
38
|
const tool = requireString(args, 'tool');
|
|
39
39
|
const pkgmgr = await detectPackageManager();
|
|
40
|
-
return shellExec({ command: pkgmgr.installCommand(tool) });
|
|
40
|
+
return shellExec({ command: pkgmgr.installCommand(tool), signal: options?.signal });
|
|
41
41
|
},
|
|
42
|
-
async 'net.scan'(args) {
|
|
42
|
+
async 'net.scan'(args, options) {
|
|
43
43
|
const target = requireString(args, 'target');
|
|
44
44
|
const ports = optionalString(args, 'ports');
|
|
45
45
|
const command = ports ? `nmap -p ${ports} ${target}` : `nmap ${target}`;
|
|
46
|
-
return shellExec({ command, timeoutMs: 120_000 });
|
|
46
|
+
return shellExec({ command, timeoutMs: 120_000, signal: options?.signal });
|
|
47
47
|
},
|
|
48
48
|
async 'http.fetch'(args) {
|
|
49
49
|
return httpFetch(requireString(args, 'url'), {
|
|
@@ -55,25 +55,33 @@ export const toolRegistry = {
|
|
|
55
55
|
async sysinfo() {
|
|
56
56
|
return { ok: true, output: JSON.stringify(detectSystem(), null, 2) };
|
|
57
57
|
},
|
|
58
|
-
async 'pentest.recon'(args) {
|
|
58
|
+
async 'pentest.recon'(args, options) {
|
|
59
59
|
const target = requireString(args, 'target');
|
|
60
60
|
const commands = [`whois ${target}`, `dig ${target}`, `nmap --top-ports 100 ${target}`];
|
|
61
61
|
const outputs = [];
|
|
62
62
|
for (const command of commands) {
|
|
63
|
-
|
|
63
|
+
if (options?.signal?.aborted)
|
|
64
|
+
break;
|
|
65
|
+
const result = await shellExec({ command, timeoutMs: 120_000, signal: options?.signal });
|
|
64
66
|
outputs.push(`$ ${command}\n${result.output}`);
|
|
67
|
+
if (options?.signal?.aborted)
|
|
68
|
+
break;
|
|
65
69
|
}
|
|
66
|
-
return {
|
|
70
|
+
return {
|
|
71
|
+
ok: !options?.signal?.aborted,
|
|
72
|
+
output: options?.signal?.aborted ? `${outputs.join('\n\n')}\n\nCommand aborted.`.trim() : outputs.join('\n\n'),
|
|
73
|
+
exitCode: options?.signal?.aborted ? 130 : 0,
|
|
74
|
+
};
|
|
67
75
|
},
|
|
68
76
|
};
|
|
69
77
|
export function availableToolNames() {
|
|
70
78
|
return Object.keys(toolRegistry);
|
|
71
79
|
}
|
|
72
|
-
export async function runToolCall(call) {
|
|
80
|
+
export async function runToolCall(call, options = {}) {
|
|
73
81
|
const handler = toolRegistry[call.name];
|
|
74
82
|
if (!handler) {
|
|
75
83
|
throw new Error(`Unknown tool: ${call.name}`);
|
|
76
84
|
}
|
|
77
|
-
return handler(call.args);
|
|
85
|
+
return handler(call.args, options);
|
|
78
86
|
}
|
|
79
87
|
//# sourceMappingURL=registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/shell.d.ts
CHANGED
package/dist/tools/shell.js
CHANGED
|
@@ -1,16 +1,91 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
2
|
export async function shellExec(args) {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
if (args.signal?.aborted) {
|
|
4
|
+
return { ok: false, output: "Command aborted.", exitCode: 130 };
|
|
5
|
+
}
|
|
6
|
+
return new Promise((resolve, reject) => {
|
|
7
|
+
const detached = process.platform !== "win32";
|
|
8
|
+
const child = spawn(args.command, {
|
|
9
|
+
cwd: args.cwd ?? process.cwd(),
|
|
10
|
+
detached,
|
|
11
|
+
shell: true,
|
|
12
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
13
|
+
});
|
|
14
|
+
let output = "";
|
|
15
|
+
let aborted = false;
|
|
16
|
+
let timedOut = false;
|
|
17
|
+
let timeout;
|
|
18
|
+
let forceKill;
|
|
19
|
+
const cleanup = () => {
|
|
20
|
+
if (timeout)
|
|
21
|
+
clearTimeout(timeout);
|
|
22
|
+
if (forceKill)
|
|
23
|
+
clearTimeout(forceKill);
|
|
24
|
+
args.signal?.removeEventListener("abort", abort);
|
|
25
|
+
};
|
|
26
|
+
const append = (chunk) => {
|
|
27
|
+
output += chunk.toString();
|
|
28
|
+
};
|
|
29
|
+
const killChild = (signal) => {
|
|
30
|
+
if (!child.pid)
|
|
31
|
+
return;
|
|
32
|
+
try {
|
|
33
|
+
if (detached)
|
|
34
|
+
process.kill(-child.pid, signal);
|
|
35
|
+
else
|
|
36
|
+
child.kill(signal);
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
// Process may have already exited.
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
const terminate = (reason) => {
|
|
43
|
+
if (reason === "abort")
|
|
44
|
+
aborted = true;
|
|
45
|
+
if (reason === "timeout")
|
|
46
|
+
timedOut = true;
|
|
47
|
+
killChild("SIGTERM");
|
|
48
|
+
forceKill = setTimeout(() => killChild("SIGKILL"), 1_000);
|
|
49
|
+
};
|
|
50
|
+
const abort = () => terminate("abort");
|
|
51
|
+
child.stdout?.on("data", append);
|
|
52
|
+
child.stderr?.on("data", append);
|
|
53
|
+
child.on("error", (error) => {
|
|
54
|
+
cleanup();
|
|
55
|
+
if (aborted || args.signal?.aborted) {
|
|
56
|
+
resolve({ ok: false, output: "Command aborted.", exitCode: 130 });
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
reject(error);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
child.on("close", (code) => {
|
|
63
|
+
cleanup();
|
|
64
|
+
const trimmed = output.trim();
|
|
65
|
+
if (aborted || args.signal?.aborted) {
|
|
66
|
+
resolve({
|
|
67
|
+
ok: false,
|
|
68
|
+
output: trimmed ? `${trimmed}\nCommand aborted.` : "Command aborted.",
|
|
69
|
+
exitCode: 130,
|
|
70
|
+
});
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (timedOut) {
|
|
74
|
+
resolve({
|
|
75
|
+
ok: false,
|
|
76
|
+
output: trimmed ? `${trimmed}\nCommand timed out.` : "Command timed out.",
|
|
77
|
+
exitCode: 124,
|
|
78
|
+
});
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
resolve({
|
|
82
|
+
ok: code === 0,
|
|
83
|
+
output: trimmed,
|
|
84
|
+
exitCode: code ?? undefined,
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
args.signal?.addEventListener("abort", abort, { once: true });
|
|
88
|
+
timeout = setTimeout(() => terminate("timeout"), args.timeoutMs ?? 120_000);
|
|
9
89
|
});
|
|
10
|
-
return {
|
|
11
|
-
ok: subprocess.exitCode === 0,
|
|
12
|
-
output: subprocess.all ?? `${subprocess.stdout}\n${subprocess.stderr}`.trim(),
|
|
13
|
-
exitCode: subprocess.exitCode,
|
|
14
|
-
};
|
|
15
90
|
}
|
|
16
91
|
//# sourceMappingURL=shell.js.map
|
package/dist/tools/shell.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/tools/shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/tools/shell.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface ThinkingResult {
|
|
2
|
+
visible: string;
|
|
3
|
+
hasThinking: boolean;
|
|
4
|
+
thinkContent: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function stripThinking(text: string): ThinkingResult;
|
|
7
|
+
export declare function rememberThinking(content: string): void;
|
|
8
|
+
export declare function rememberThinkingFromText(text: string): ThinkingResult;
|
|
9
|
+
export declare function clearThinking(): void;
|
|
10
|
+
export declare function getLastThinking(): string;
|
|
11
|
+
export declare function isThinkingVisible(): boolean;
|
|
12
|
+
export declare function toggleThinkingVisibility(): boolean;
|
|
13
|
+
export declare function renderThinkingBlock(content?: string): string;
|
|
14
|
+
export declare function renderThinkingHiddenNotice(): string;
|
|
15
|
+
export declare function renderThinkingSummary(content: string): string;
|
|
16
|
+
export declare function renderThinkingToggleMessage(): string;
|
|
17
|
+
export declare function createThinkingStreamParser(onVisible: (text: string) => void): {
|
|
18
|
+
push(token: string): void;
|
|
19
|
+
finish(): ThinkingResult;
|
|
20
|
+
};
|