@pentoshi/clai 1.2.6 → 1.2.8
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/classic-renderer.d.ts +5 -0
- package/dist/agent/classic-renderer.js +124 -0
- package/dist/agent/classic-renderer.js.map +1 -0
- package/dist/agent/events.d.ts +62 -0
- package/dist/agent/events.js +2 -0
- package/dist/agent/events.js.map +1 -0
- package/dist/agent/runner.d.ts +8 -0
- package/dist/agent/runner.js +974 -837
- package/dist/agent/runner.js.map +1 -1
- package/dist/commands/update.js +1 -1
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -1
- package/dist/llm/capabilities.js +1 -0
- package/dist/llm/capabilities.js.map +1 -1
- package/dist/llm/http.js +19 -11
- package/dist/llm/http.js.map +1 -1
- package/dist/llm/openai.js +10 -1
- package/dist/llm/openai.js.map +1 -1
- package/dist/modes/agent.d.ts +4 -1
- package/dist/modes/agent.js.map +1 -1
- package/dist/repl.js +91 -45
- package/dist/repl.js.map +1 -1
- package/dist/tui/App.d.ts +8 -0
- package/dist/tui/App.js +273 -0
- package/dist/tui/App.js.map +1 -0
- package/dist/tui/can-use-tui.d.ts +20 -0
- package/dist/tui/can-use-tui.js +28 -0
- package/dist/tui/can-use-tui.js.map +1 -0
- package/dist/tui/components/Composer.d.ts +6 -0
- package/dist/tui/components/Composer.js +122 -0
- package/dist/tui/components/Composer.js.map +1 -0
- package/dist/tui/components/ConfirmModal.d.ts +6 -0
- package/dist/tui/components/ConfirmModal.js +16 -0
- package/dist/tui/components/ConfirmModal.js.map +1 -0
- package/dist/tui/components/Header.d.ts +7 -0
- package/dist/tui/components/Header.js +6 -0
- package/dist/tui/components/Header.js.map +1 -0
- package/dist/tui/components/JobsPanel.d.ts +11 -0
- package/dist/tui/components/JobsPanel.js +55 -0
- package/dist/tui/components/JobsPanel.js.map +1 -0
- package/dist/tui/components/Pager.d.ts +13 -0
- package/dist/tui/components/Pager.js +46 -0
- package/dist/tui/components/Pager.js.map +1 -0
- package/dist/tui/components/StatusLine.d.ts +7 -0
- package/dist/tui/components/StatusLine.js +25 -0
- package/dist/tui/components/StatusLine.js.map +1 -0
- package/dist/tui/components/items.d.ts +5 -0
- package/dist/tui/components/items.js +57 -0
- package/dist/tui/components/items.js.map +1 -0
- package/dist/tui/confirm.d.ts +16 -0
- package/dist/tui/confirm.js +41 -0
- package/dist/tui/confirm.js.map +1 -0
- package/dist/tui/hooks/useAgentRunner.d.ts +36 -0
- package/dist/tui/hooks/useAgentRunner.js +90 -0
- package/dist/tui/hooks/useAgentRunner.js.map +1 -0
- package/dist/tui/hooks/useJobs.d.ts +7 -0
- package/dist/tui/hooks/useJobs.js +39 -0
- package/dist/tui/hooks/useJobs.js.map +1 -0
- package/dist/tui/hooks/useSpinner.d.ts +5 -0
- package/dist/tui/hooks/useSpinner.js +19 -0
- package/dist/tui/hooks/useSpinner.js.map +1 -0
- package/dist/tui/index.d.ts +8 -0
- package/dist/tui/index.js +22 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/tui/state.d.ts +101 -0
- package/dist/tui/state.js +323 -0
- package/dist/tui/state.js.map +1 -0
- package/dist/types.d.ts +1 -1
- package/package.json +6 -2
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { styleToolChatter } from "./runner.js";
|
|
3
|
+
import { indentAndWrapText, renderMarkdown } from "../ui/markdown.js";
|
|
4
|
+
import { renderPlanChecklist } from "../ui/plan-pane.js";
|
|
5
|
+
import { startThinkingSpinner } from "../ui/spinner.js";
|
|
6
|
+
import { renderThinkingSummary } from "../ui/thinking.js";
|
|
7
|
+
export function attachClassicRenderer(write = (chunk) => {
|
|
8
|
+
process.stdout.write(chunk);
|
|
9
|
+
}) {
|
|
10
|
+
const toolCalls = new Map();
|
|
11
|
+
let spinner;
|
|
12
|
+
const callFor = (id) => toolCalls.get(id) ?? { name: "tool", args: {} };
|
|
13
|
+
const stopSpinner = () => {
|
|
14
|
+
spinner?.stop();
|
|
15
|
+
spinner = undefined;
|
|
16
|
+
};
|
|
17
|
+
const setSpinnerLabel = (label) => {
|
|
18
|
+
if (!spinner) {
|
|
19
|
+
spinner = startThinkingSpinner(label);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
spinner.setLabel(label);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const onEvent = (event) => {
|
|
26
|
+
switch (event.type) {
|
|
27
|
+
case "turn-start":
|
|
28
|
+
case "assistant-delta":
|
|
29
|
+
case "confirm-request":
|
|
30
|
+
return;
|
|
31
|
+
case "thinking-delta":
|
|
32
|
+
setSpinnerLabel("thinking");
|
|
33
|
+
spinner?.pushPreview(event.text);
|
|
34
|
+
return;
|
|
35
|
+
case "status":
|
|
36
|
+
if (event.text === "waiting for model" ||
|
|
37
|
+
event.text === "thinking" ||
|
|
38
|
+
/^step \d+$/.test(event.text)) {
|
|
39
|
+
setSpinnerLabel(event.text);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
stopSpinner();
|
|
43
|
+
write(chalk.dim(event.text));
|
|
44
|
+
return;
|
|
45
|
+
case "notice": {
|
|
46
|
+
stopSpinner();
|
|
47
|
+
const prefix = event.level === "warn" ? " ⚠ " : " ℹ ";
|
|
48
|
+
const color = event.level === "warn" ? chalk.yellow : chalk.dim;
|
|
49
|
+
write(color(`${prefix}${event.text}\n`));
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
case "thinking-block":
|
|
53
|
+
stopSpinner();
|
|
54
|
+
write(`${renderThinkingSummary(event.content)}\n`);
|
|
55
|
+
return;
|
|
56
|
+
case "assistant-message": {
|
|
57
|
+
stopSpinner();
|
|
58
|
+
write(renderMarkdown(event.text));
|
|
59
|
+
if (!event.text.endsWith("\n"))
|
|
60
|
+
write("\n");
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
case "tool-call": {
|
|
64
|
+
stopSpinner();
|
|
65
|
+
const call = { name: event.name, args: {} };
|
|
66
|
+
toolCalls.set(event.id, call);
|
|
67
|
+
const line = chalk.cyan(` ▶ ${event.name}`) + chalk.gray(` ${event.argsDisplay}`);
|
|
68
|
+
write(styleToolChatter(call, line) + "\n");
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
case "tool-output": {
|
|
72
|
+
stopSpinner();
|
|
73
|
+
if (!event.chunk)
|
|
74
|
+
return;
|
|
75
|
+
if (event.chunk === "ok\n") {
|
|
76
|
+
write(chalk.green(" ✓") + "\n");
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (event.chunk === "failed\n") {
|
|
80
|
+
write(chalk.red(" ✗") + "\n");
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
const call = callFor(event.id);
|
|
84
|
+
const body = event.chunk.startsWith("\n")
|
|
85
|
+
? event.chunk
|
|
86
|
+
: indentAndWrapText(event.chunk);
|
|
87
|
+
write(styleToolChatter(call, body.endsWith("\n") ? body : `${body}\n`));
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
case "tool-result":
|
|
91
|
+
return;
|
|
92
|
+
case "tool-blocked":
|
|
93
|
+
stopSpinner();
|
|
94
|
+
write(chalk.red(` ✗ blocked: ${event.reason}`) + "\n");
|
|
95
|
+
return;
|
|
96
|
+
case "plan-update":
|
|
97
|
+
stopSpinner();
|
|
98
|
+
if (event.plan.status === "draft") {
|
|
99
|
+
write(chalk.cyan(" ● planning\n") +
|
|
100
|
+
renderPlanChecklist(event.plan) +
|
|
101
|
+
"\n" +
|
|
102
|
+
chalk.dim(" ✦ plan created — press Ctrl+P to view it, /implement to approve and run it,\n" +
|
|
103
|
+
" or /discard to cancel it. Any other message refines this plan.\n"));
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
write(renderPlanChecklist(event.plan) + "\n");
|
|
107
|
+
}
|
|
108
|
+
return;
|
|
109
|
+
case "turn-end":
|
|
110
|
+
stopSpinner();
|
|
111
|
+
return;
|
|
112
|
+
case "turn-aborted":
|
|
113
|
+
stopSpinner();
|
|
114
|
+
write(chalk.yellow(" ⏹ Aborted.\n"));
|
|
115
|
+
return;
|
|
116
|
+
case "turn-error":
|
|
117
|
+
stopSpinner();
|
|
118
|
+
write(chalk.red(` ✗ ${event.message}\n`));
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
return { onEvent };
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=classic-renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classic-renderer.js","sourceRoot":"","sources":["../../src/agent/classic-renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { SessionPlan } from "../store/plan.js";
|
|
2
|
+
export type AgentEvent = {
|
|
3
|
+
type: "turn-start";
|
|
4
|
+
prompt: string;
|
|
5
|
+
} | {
|
|
6
|
+
type: "status";
|
|
7
|
+
text: string;
|
|
8
|
+
} | {
|
|
9
|
+
type: "thinking-delta";
|
|
10
|
+
text: string;
|
|
11
|
+
} | {
|
|
12
|
+
type: "thinking-block";
|
|
13
|
+
content: string;
|
|
14
|
+
} | {
|
|
15
|
+
type: "assistant-delta";
|
|
16
|
+
text: string;
|
|
17
|
+
} | {
|
|
18
|
+
type: "assistant-message";
|
|
19
|
+
text: string;
|
|
20
|
+
} | {
|
|
21
|
+
type: "notice";
|
|
22
|
+
level: "info" | "warn";
|
|
23
|
+
text: string;
|
|
24
|
+
} | {
|
|
25
|
+
type: "tool-call";
|
|
26
|
+
id: string;
|
|
27
|
+
name: string;
|
|
28
|
+
argsDisplay: string;
|
|
29
|
+
} | {
|
|
30
|
+
type: "tool-output";
|
|
31
|
+
id: string;
|
|
32
|
+
chunk: string;
|
|
33
|
+
} | {
|
|
34
|
+
type: "tool-result";
|
|
35
|
+
id: string;
|
|
36
|
+
ok: boolean;
|
|
37
|
+
exitCode?: number;
|
|
38
|
+
summary: string;
|
|
39
|
+
artifactPath?: string;
|
|
40
|
+
} | {
|
|
41
|
+
type: "tool-blocked";
|
|
42
|
+
id: string;
|
|
43
|
+
name: string;
|
|
44
|
+
reason: string;
|
|
45
|
+
} | {
|
|
46
|
+
type: "plan-update";
|
|
47
|
+
plan: SessionPlan;
|
|
48
|
+
} | {
|
|
49
|
+
type: "confirm-request";
|
|
50
|
+
id: string;
|
|
51
|
+
kind: "tool" | "pentest";
|
|
52
|
+
prompt: string;
|
|
53
|
+
} | {
|
|
54
|
+
type: "turn-end";
|
|
55
|
+
finalAnswer: string;
|
|
56
|
+
steps: number;
|
|
57
|
+
} | {
|
|
58
|
+
type: "turn-aborted";
|
|
59
|
+
} | {
|
|
60
|
+
type: "turn-error";
|
|
61
|
+
message: string;
|
|
62
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/agent/events.ts"],"names":[],"mappings":""}
|
package/dist/agent/runner.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ChatMessage, ChatImage, ProviderId, ToolCall, ToolResult } from "../types.js";
|
|
2
|
+
import type { AgentEvent } from "./events.js";
|
|
2
3
|
export interface SessionPolicy {
|
|
3
4
|
/** Tools the user authorized once during this REPL session. Not persisted. */
|
|
4
5
|
allow: Set<string>;
|
|
@@ -14,6 +15,10 @@ export interface SessionPolicy {
|
|
|
14
15
|
};
|
|
15
16
|
}
|
|
16
17
|
export declare function createSessionPolicy(): SessionPolicy;
|
|
18
|
+
export interface ConfirmPort {
|
|
19
|
+
confirmTool(call: ToolCall): Promise<boolean>;
|
|
20
|
+
confirmPentest(): Promise<boolean>;
|
|
21
|
+
}
|
|
17
22
|
export interface AgentRunOptions {
|
|
18
23
|
provider?: ProviderId | undefined;
|
|
19
24
|
model?: string | undefined;
|
|
@@ -24,6 +29,8 @@ export interface AgentRunOptions {
|
|
|
24
29
|
images?: ChatImage[] | undefined;
|
|
25
30
|
onToolStart?: ((call: ToolCall) => void) | undefined;
|
|
26
31
|
onToolResult?: ((call: ToolCall, result: ToolResult) => void) | undefined;
|
|
32
|
+
onEvent?: ((event: AgentEvent) => void) | undefined;
|
|
33
|
+
confirm?: ConfirmPort | undefined;
|
|
27
34
|
session?: SessionPolicy | undefined;
|
|
28
35
|
}
|
|
29
36
|
export interface ParseToolCallOptions {
|
|
@@ -137,4 +144,5 @@ export declare function requiresFreshWebSearch(prompt: string): boolean;
|
|
|
137
144
|
export declare function isLumpedSingleTask(taskTitles: string[]): boolean;
|
|
138
145
|
export declare function shouldDimToolChatter(call: ToolCall): boolean;
|
|
139
146
|
export declare function isPreApprovalAllowedTool(name: string): boolean;
|
|
147
|
+
export declare function styleToolChatter(call: ToolCall, text: string): string;
|
|
140
148
|
export declare function runAgentLoop(prompt: string, options?: AgentRunOptions): Promise<string>;
|