openpaean 0.1.0
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/LICENSE +21 -0
- package/README.md +129 -0
- package/dist/agent/chat.ink.d.ts +28 -0
- package/dist/agent/chat.ink.d.ts.map +1 -0
- package/dist/agent/chat.ink.js +57 -0
- package/dist/agent/chat.ink.js.map +1 -0
- package/dist/agent/chat.legacy.d.ts +25 -0
- package/dist/agent/chat.legacy.d.ts.map +1 -0
- package/dist/agent/chat.legacy.js +299 -0
- package/dist/agent/chat.legacy.js.map +1 -0
- package/dist/agent/cli-mode.d.ts +35 -0
- package/dist/agent/cli-mode.d.ts.map +1 -0
- package/dist/agent/cli-mode.js +69 -0
- package/dist/agent/cli-mode.js.map +1 -0
- package/dist/agent/completer.d.ts +39 -0
- package/dist/agent/completer.d.ts.map +1 -0
- package/dist/agent/completer.js +101 -0
- package/dist/agent/completer.js.map +1 -0
- package/dist/agent/index.d.ts +15 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +11 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/renderer.d.ts +53 -0
- package/dist/agent/renderer.d.ts.map +1 -0
- package/dist/agent/renderer.js +133 -0
- package/dist/agent/renderer.js.map +1 -0
- package/dist/agent/service.d.ts +44 -0
- package/dist/agent/service.d.ts.map +1 -0
- package/dist/agent/service.js +192 -0
- package/dist/agent/service.js.map +1 -0
- package/dist/agent/spinner.d.ts +37 -0
- package/dist/agent/spinner.d.ts.map +1 -0
- package/dist/agent/spinner.js +200 -0
- package/dist/agent/spinner.js.map +1 -0
- package/dist/agent/types.d.ts +84 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +6 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/api/auth.d.ts +71 -0
- package/dist/api/auth.d.ts.map +1 -0
- package/dist/api/auth.js +261 -0
- package/dist/api/auth.js.map +1 -0
- package/dist/api/client.d.ts +37 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.js +101 -0
- package/dist/api/client.js.map +1 -0
- package/dist/api/todo.d.ts +223 -0
- package/dist/api/todo.d.ts.map +1 -0
- package/dist/api/todo.js +196 -0
- package/dist/api/todo.js.map +1 -0
- package/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +55 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/agent.d.ts +16 -0
- package/dist/commands/agent.d.ts.map +1 -0
- package/dist/commands/agent.js +132 -0
- package/dist/commands/agent.js.map +1 -0
- package/dist/commands/context.d.ts +7 -0
- package/dist/commands/context.d.ts.map +1 -0
- package/dist/commands/context.js +155 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/login.d.ts +7 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +109 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +7 -0
- package/dist/commands/logout.d.ts.map +1 -0
- package/dist/commands/logout.js +27 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/serve.d.ts +7 -0
- package/dist/commands/serve.d.ts.map +1 -0
- package/dist/commands/serve.js +29 -0
- package/dist/commands/serve.js.map +1 -0
- package/dist/commands/tasks.d.ts +7 -0
- package/dist/commands/tasks.d.ts.map +1 -0
- package/dist/commands/tasks.js +277 -0
- package/dist/commands/tasks.js.map +1 -0
- package/dist/commands/validate.d.ts +7 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +123 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/client.d.ts +115 -0
- package/dist/mcp/client.d.ts.map +1 -0
- package/dist/mcp/client.js +439 -0
- package/dist/mcp/client.js.map +1 -0
- package/dist/mcp/resources.d.ts +14 -0
- package/dist/mcp/resources.d.ts.map +1 -0
- package/dist/mcp/resources.js +195 -0
- package/dist/mcp/resources.js.map +1 -0
- package/dist/mcp/server.d.ts +12 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +82 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools.d.ts +14 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +582 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/ui/App.d.ts +15 -0
- package/dist/ui/App.d.ts.map +1 -0
- package/dist/ui/App.js +80 -0
- package/dist/ui/App.js.map +1 -0
- package/dist/ui/FullscreenApp.d.ts +16 -0
- package/dist/ui/FullscreenApp.d.ts.map +1 -0
- package/dist/ui/FullscreenApp.js +48 -0
- package/dist/ui/FullscreenApp.js.map +1 -0
- package/dist/ui/components/Header.d.ts +11 -0
- package/dist/ui/components/Header.d.ts.map +1 -0
- package/dist/ui/components/Header.js +6 -0
- package/dist/ui/components/Header.js.map +1 -0
- package/dist/ui/components/InputArea.d.ts +16 -0
- package/dist/ui/components/InputArea.d.ts.map +1 -0
- package/dist/ui/components/InputArea.js +109 -0
- package/dist/ui/components/InputArea.js.map +1 -0
- package/dist/ui/components/Spinner.d.ts +12 -0
- package/dist/ui/components/Spinner.d.ts.map +1 -0
- package/dist/ui/components/Spinner.js +8 -0
- package/dist/ui/components/Spinner.js.map +1 -0
- package/dist/ui/components/StreamingText.d.ts +13 -0
- package/dist/ui/components/StreamingText.d.ts.map +1 -0
- package/dist/ui/components/StreamingText.js +8 -0
- package/dist/ui/components/StreamingText.js.map +1 -0
- package/dist/ui/components/ToolCallIndicator.d.ts +14 -0
- package/dist/ui/components/ToolCallIndicator.d.ts.map +1 -0
- package/dist/ui/components/ToolCallIndicator.js +10 -0
- package/dist/ui/components/ToolCallIndicator.js.map +1 -0
- package/dist/ui/components/index.d.ts +9 -0
- package/dist/ui/components/index.d.ts.map +1 -0
- package/dist/ui/components/index.js +9 -0
- package/dist/ui/components/index.js.map +1 -0
- package/dist/ui/hooks/index.d.ts +6 -0
- package/dist/ui/hooks/index.d.ts.map +1 -0
- package/dist/ui/hooks/index.js +6 -0
- package/dist/ui/hooks/index.js.map +1 -0
- package/dist/ui/hooks/useAgentStream.d.ts +37 -0
- package/dist/ui/hooks/useAgentStream.d.ts.map +1 -0
- package/dist/ui/hooks/useAgentStream.js +122 -0
- package/dist/ui/hooks/useAgentStream.js.map +1 -0
- package/dist/ui/hooks/useCommands.d.ts +31 -0
- package/dist/ui/hooks/useCommands.d.ts.map +1 -0
- package/dist/ui/hooks/useCommands.js +108 -0
- package/dist/ui/hooks/useCommands.js.map +1 -0
- package/dist/ui/index.d.ts +7 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +7 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/utils/config.d.ts +70 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +130 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/output.d.ts +79 -0
- package/dist/utils/output.d.ts.map +1 -0
- package/dist/utils/output.js +157 -0
- package/dist/utils/output.js.map +1 -0
- package/dist/utils/project.d.ts +29 -0
- package/dist/utils/project.d.ts.map +1 -0
- package/dist/utils/project.js +135 -0
- package/dist/utils/project.js.map +1 -0
- package/package.json +81 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Mode Configuration
|
|
3
|
+
* Configures agent to return CLI-friendly output without markdown
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* System prompt suffix for CLI mode
|
|
7
|
+
* Instructs the agent to return plain text instead of markdown
|
|
8
|
+
*/
|
|
9
|
+
export const CLI_MODE_PROMPT = `
|
|
10
|
+
[CLI Terminal Mode Active]
|
|
11
|
+
You are running in a CLI terminal environment. Follow these formatting rules:
|
|
12
|
+
|
|
13
|
+
OUTPUT FORMAT:
|
|
14
|
+
- Do NOT use markdown formatting (no **, *, #, \`\`\`, etc.)
|
|
15
|
+
- Use plain text with appropriate spacing and line breaks
|
|
16
|
+
- For code snippets, show as-is without code fences
|
|
17
|
+
- For lists, use simple dashes (-) or numbers (1. 2. 3.)
|
|
18
|
+
- For emphasis, use CAPS or [brackets] sparingly
|
|
19
|
+
- Keep output concise and scannable
|
|
20
|
+
|
|
21
|
+
STRUCTURE:
|
|
22
|
+
- Use blank lines to separate sections
|
|
23
|
+
- Indent nested content with 2 spaces
|
|
24
|
+
- Use --- for horizontal separators if needed
|
|
25
|
+
- Keep line width under 80 characters when possible
|
|
26
|
+
|
|
27
|
+
This ensures optimal display in terminal interfaces.
|
|
28
|
+
`;
|
|
29
|
+
/**
|
|
30
|
+
* Default CLI mode settings
|
|
31
|
+
*/
|
|
32
|
+
export const DEFAULT_CLI_MODE = {
|
|
33
|
+
enabled: false,
|
|
34
|
+
streamRaw: false,
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Create CLI mode configuration for API requests
|
|
38
|
+
*/
|
|
39
|
+
export function createCliModeConfig(options = {}) {
|
|
40
|
+
return {
|
|
41
|
+
...DEFAULT_CLI_MODE,
|
|
42
|
+
...options,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Check if CLI mode is active based on environment or options
|
|
47
|
+
*/
|
|
48
|
+
export function isCliModeActive(options) {
|
|
49
|
+
// Check environment variable
|
|
50
|
+
if (process.env.PAEAN_CLI_MODE === 'true' || process.env.PAEAN_CLI_MODE === '1') {
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
// Check explicit option
|
|
54
|
+
return options?.enabled ?? false;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Check if raw streaming is enabled
|
|
58
|
+
*/
|
|
59
|
+
export function isRawStreamEnabled(options) {
|
|
60
|
+
if (!isCliModeActive(options)) {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
// Check environment variable
|
|
64
|
+
if (process.env.PAEAN_RAW_STREAM === 'true' || process.env.PAEAN_RAW_STREAM === '1') {
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
return options?.streamRaw ?? false;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=cli-mode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-mode.js","sourceRoot":"","sources":["../../src/agent/cli-mode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;CAmB9B,CAAC;AAYF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAmB;IAC5C,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,KAAK;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAmC,EAAE;IACrE,OAAO;QACH,GAAG,gBAAgB;QACnB,GAAG,OAAO;KACb,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAAiC;IAC7D,6BAA6B;IAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,GAAG,EAAE,CAAC;QAC9E,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,wBAAwB;IACxB,OAAO,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAiC;IAChE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,6BAA6B;IAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,GAAG,EAAE,CAAC;QAClF,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,OAAO,EAAE,SAAS,IAAI,KAAK,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Command Completer for CLI
|
|
3
|
+
* Provides tab completion for slash commands
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Command definition
|
|
7
|
+
*/
|
|
8
|
+
export interface CommandDef {
|
|
9
|
+
name: string;
|
|
10
|
+
description: string;
|
|
11
|
+
aliases?: string[];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Available slash commands
|
|
15
|
+
*/
|
|
16
|
+
export declare const COMMANDS: CommandDef[];
|
|
17
|
+
/**
|
|
18
|
+
* Get all command names (including aliases)
|
|
19
|
+
*/
|
|
20
|
+
export declare function getAllCommandNames(): string[];
|
|
21
|
+
/**
|
|
22
|
+
* Readline completer function for slash commands
|
|
23
|
+
* @param line Current input line
|
|
24
|
+
* @returns [completions, substring] tuple for readline
|
|
25
|
+
*/
|
|
26
|
+
export declare function commandCompleter(line: string): [string[], string];
|
|
27
|
+
/**
|
|
28
|
+
* Render command help as formatted string
|
|
29
|
+
*/
|
|
30
|
+
export declare function renderCommandHelp(): string;
|
|
31
|
+
/**
|
|
32
|
+
* Check if input is a known command
|
|
33
|
+
*/
|
|
34
|
+
export declare function isCommand(input: string): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Get command definition by name (including alias lookup)
|
|
37
|
+
*/
|
|
38
|
+
export declare function getCommandDef(input: string): CommandDef | undefined;
|
|
39
|
+
//# sourceMappingURL=completer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completer.d.ts","sourceRoot":"","sources":["../../src/agent/completer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,UAAU,EAWhC,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAS7C;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAqBjE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAqB1C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGhD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAenE"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Command Completer for CLI
|
|
3
|
+
* Provides tab completion for slash commands
|
|
4
|
+
*/
|
|
5
|
+
import chalk from 'chalk';
|
|
6
|
+
/**
|
|
7
|
+
* Available slash commands
|
|
8
|
+
*/
|
|
9
|
+
export const COMMANDS = [
|
|
10
|
+
{ name: '/exit', description: 'Exit the chat session', aliases: ['/quit', '/q'] },
|
|
11
|
+
{ name: '/quit', description: 'Exit the chat session' },
|
|
12
|
+
{ name: '/clear', description: 'Clear the screen', aliases: ['/cls'] },
|
|
13
|
+
{ name: '/help', description: 'Show available commands', aliases: ['/h', '/?'] },
|
|
14
|
+
{ name: '/model', description: 'Switch AI model' },
|
|
15
|
+
{ name: '/debug', description: 'Toggle debug mode' },
|
|
16
|
+
{ name: '/mcp', description: 'Show MCP connection status' },
|
|
17
|
+
{ name: '/history', description: 'Show conversation history' },
|
|
18
|
+
{ name: '/export', description: 'Export conversation to file' },
|
|
19
|
+
{ name: '/raw', description: 'Toggle raw output mode (no markdown)' },
|
|
20
|
+
];
|
|
21
|
+
/**
|
|
22
|
+
* Get all command names (including aliases)
|
|
23
|
+
*/
|
|
24
|
+
export function getAllCommandNames() {
|
|
25
|
+
const names = [];
|
|
26
|
+
for (const cmd of COMMANDS) {
|
|
27
|
+
names.push(cmd.name);
|
|
28
|
+
if (cmd.aliases) {
|
|
29
|
+
names.push(...cmd.aliases);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return names;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Readline completer function for slash commands
|
|
36
|
+
* @param line Current input line
|
|
37
|
+
* @returns [completions, substring] tuple for readline
|
|
38
|
+
*/
|
|
39
|
+
export function commandCompleter(line) {
|
|
40
|
+
// Only complete if line starts with /
|
|
41
|
+
if (!line.startsWith('/')) {
|
|
42
|
+
return [[], line];
|
|
43
|
+
}
|
|
44
|
+
const allNames = getAllCommandNames();
|
|
45
|
+
const matches = allNames.filter(name => name.startsWith(line.toLowerCase()));
|
|
46
|
+
// If exact match exists, return it
|
|
47
|
+
if (matches.length === 1) {
|
|
48
|
+
return [matches, line];
|
|
49
|
+
}
|
|
50
|
+
// If multiple matches or no matches, show all matching commands
|
|
51
|
+
if (matches.length > 0) {
|
|
52
|
+
return [matches, line];
|
|
53
|
+
}
|
|
54
|
+
// No matches - show all commands
|
|
55
|
+
return [COMMANDS.map(c => c.name), line];
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Render command help as formatted string
|
|
59
|
+
*/
|
|
60
|
+
export function renderCommandHelp() {
|
|
61
|
+
const lines = [
|
|
62
|
+
'',
|
|
63
|
+
chalk.bold.cyan(' Available Commands:'),
|
|
64
|
+
'',
|
|
65
|
+
];
|
|
66
|
+
for (const cmd of COMMANDS) {
|
|
67
|
+
const aliases = cmd.aliases?.length
|
|
68
|
+
? chalk.dim(` (${cmd.aliases.join(', ')})`)
|
|
69
|
+
: '';
|
|
70
|
+
lines.push(` ${chalk.yellow(cmd.name.padEnd(12))} ${chalk.dim(cmd.description)}${aliases}`);
|
|
71
|
+
}
|
|
72
|
+
lines.push('');
|
|
73
|
+
lines.push(chalk.dim(' Press Tab after / to autocomplete commands'));
|
|
74
|
+
lines.push('');
|
|
75
|
+
return lines.join('\n');
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Check if input is a known command
|
|
79
|
+
*/
|
|
80
|
+
export function isCommand(input) {
|
|
81
|
+
const normalized = input.toLowerCase().trim();
|
|
82
|
+
return getAllCommandNames().includes(normalized);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Get command definition by name (including alias lookup)
|
|
86
|
+
*/
|
|
87
|
+
export function getCommandDef(input) {
|
|
88
|
+
const normalized = input.toLowerCase().trim();
|
|
89
|
+
// Direct match
|
|
90
|
+
const direct = COMMANDS.find(c => c.name === normalized);
|
|
91
|
+
if (direct)
|
|
92
|
+
return direct;
|
|
93
|
+
// Alias match
|
|
94
|
+
for (const cmd of COMMANDS) {
|
|
95
|
+
if (cmd.aliases?.includes(normalized)) {
|
|
96
|
+
return cmd;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=completer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completer.js","sourceRoot":"","sources":["../../src/agent/completer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAiB;IAClC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;IACjF,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE;IACvD,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE;IACtE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;IAChF,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE;IAClD,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE;IACpD,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,4BAA4B,EAAE;IAC3D,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,2BAA2B,EAAE;IAC9D,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,6BAA6B,EAAE;IAC/D,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,sCAAsC,EAAE;CACxE,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAC9B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IACzC,sCAAsC;IACtC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAE7E,mCAAmC;IACnC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,gEAAgE;IAChE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,iCAAiC;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC7B,MAAM,KAAK,GAAa;QACpB,EAAE;QACF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC;QACxC,EAAE;KACL,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,MAAM;YAC/B,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YAC3C,CAAC,CAAC,EAAE,CAAC;QACT,KAAK,CAAC,IAAI,CACN,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,OAAO,EAAE,CACrF,CAAC;IACN,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAC;IACtE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAa;IACnC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAC9C,OAAO,kBAAkB,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACvC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAE9C,eAAe;IACf,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IACzD,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,cAAc;IACd,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,OAAO,GAAG,CAAC;QACf,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Module Index
|
|
3
|
+
* Export agent functionality
|
|
4
|
+
*/
|
|
5
|
+
export { AgentService, agentService } from './service.js';
|
|
6
|
+
export { startChat, sendMessage } from './chat.ink.js';
|
|
7
|
+
export { renderMarkdown, renderToolCall, renderToolResult, renderMcpToolCall, renderMcpToolResult, renderError, renderSuccess, renderPrompt, renderAgentLabel, renderWelcome, renderGoodbye, renderThinking, } from './renderer.js';
|
|
8
|
+
export { createThinkingSpinner, createToolCallSpinner, createMcpSpinner, createLoadingSpinner, } from './spinner.js';
|
|
9
|
+
export type { SpinnerController, SpinnerType } from './spinner.js';
|
|
10
|
+
export { commandCompleter, renderCommandHelp, COMMANDS, getAllCommandNames, isCommand, getCommandDef, } from './completer.js';
|
|
11
|
+
export type { CommandDef } from './completer.js';
|
|
12
|
+
export { CLI_MODE_PROMPT, DEFAULT_CLI_MODE, createCliModeConfig, isCliModeActive, isRawStreamEnabled, } from './cli-mode.js';
|
|
13
|
+
export type { CliModeOptions } from './cli-mode.js';
|
|
14
|
+
export type { AgentStreamEvent, AgentStreamCallbacks, McpState, McpToolResult, McpContentItem, McpServerStatus, McpToolInfo, } from './types.js';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EACH,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,cAAc,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EACH,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,GACvB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,kBAAkB,EAClB,SAAS,EACT,aAAa,GAChB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EACH,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,GACrB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,YAAY,EACR,gBAAgB,EAChB,oBAAoB,EACpB,QAAQ,EACR,aAAa,EACb,cAAc,EACd,eAAe,EACf,WAAW,GACd,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Module Index
|
|
3
|
+
* Export agent functionality
|
|
4
|
+
*/
|
|
5
|
+
export { AgentService, agentService } from './service.js';
|
|
6
|
+
export { startChat, sendMessage } from './chat.ink.js';
|
|
7
|
+
export { renderMarkdown, renderToolCall, renderToolResult, renderMcpToolCall, renderMcpToolResult, renderError, renderSuccess, renderPrompt, renderAgentLabel, renderWelcome, renderGoodbye, renderThinking, } from './renderer.js';
|
|
8
|
+
export { createThinkingSpinner, createToolCallSpinner, createMcpSpinner, createLoadingSpinner, } from './spinner.js';
|
|
9
|
+
export { commandCompleter, renderCommandHelp, COMMANDS, getAllCommandNames, isCommand, getCommandDef, } from './completer.js';
|
|
10
|
+
export { CLI_MODE_PROMPT, DEFAULT_CLI_MODE, createCliModeConfig, isCliModeActive, isRawStreamEnabled, } from './cli-mode.js';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EACH,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,cAAc,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EACH,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,GACvB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,kBAAkB,EAClB,SAAS,EACT,aAAa,GAChB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACH,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,GACrB,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Markdown Renderer for CLI
|
|
3
|
+
* Beautiful terminal markdown rendering using marked + marked-terminal
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Render markdown text to styled terminal output
|
|
7
|
+
*/
|
|
8
|
+
export declare function renderMarkdown(text: string): string;
|
|
9
|
+
/**
|
|
10
|
+
* Render a tool call indicator
|
|
11
|
+
*/
|
|
12
|
+
export declare function renderToolCall(name: string): string;
|
|
13
|
+
/**
|
|
14
|
+
* Render a tool result indicator
|
|
15
|
+
*/
|
|
16
|
+
export declare function renderToolResult(name: string, success?: boolean): string;
|
|
17
|
+
/**
|
|
18
|
+
* Render MCP tool call indicator
|
|
19
|
+
*/
|
|
20
|
+
export declare function renderMcpToolCall(serverName: string, toolName: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Render MCP tool result indicator
|
|
23
|
+
*/
|
|
24
|
+
export declare function renderMcpToolResult(serverName: string, toolName: string, success?: boolean): string;
|
|
25
|
+
/**
|
|
26
|
+
* Render an error message
|
|
27
|
+
*/
|
|
28
|
+
export declare function renderError(message: string): string;
|
|
29
|
+
/**
|
|
30
|
+
* Render a success message
|
|
31
|
+
*/
|
|
32
|
+
export declare function renderSuccess(message: string): string;
|
|
33
|
+
/**
|
|
34
|
+
* Render the agent prompt
|
|
35
|
+
*/
|
|
36
|
+
export declare function renderPrompt(): string;
|
|
37
|
+
/**
|
|
38
|
+
* Render the agent label
|
|
39
|
+
*/
|
|
40
|
+
export declare function renderAgentLabel(): string;
|
|
41
|
+
/**
|
|
42
|
+
* Render welcome message
|
|
43
|
+
*/
|
|
44
|
+
export declare function renderWelcome(mcpToolCount?: number): string;
|
|
45
|
+
/**
|
|
46
|
+
* Render goodbye message
|
|
47
|
+
*/
|
|
48
|
+
export declare function renderGoodbye(): string;
|
|
49
|
+
/**
|
|
50
|
+
* Render thinking indicator
|
|
51
|
+
*/
|
|
52
|
+
export declare function renderThinking(): string;
|
|
53
|
+
//# sourceMappingURL=renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/agent/renderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqCH;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAanD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,OAAc,GAAG,MAAM,CAG9E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC7B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACjB,MAAM,CAIR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAC/B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,OAAc,GACxB,MAAM,CAKR;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAsB3D;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Markdown Renderer for CLI
|
|
3
|
+
* Beautiful terminal markdown rendering using marked + marked-terminal
|
|
4
|
+
*/
|
|
5
|
+
import { Marked } from 'marked';
|
|
6
|
+
import { markedTerminal } from 'marked-terminal';
|
|
7
|
+
import chalk from 'chalk';
|
|
8
|
+
// Configure marked with terminal renderer
|
|
9
|
+
const marked = new Marked();
|
|
10
|
+
marked.use(markedTerminal({
|
|
11
|
+
// Code blocks
|
|
12
|
+
code: chalk.bgGray.white,
|
|
13
|
+
blockquote: chalk.gray.italic,
|
|
14
|
+
// Headers
|
|
15
|
+
heading: chalk.bold.cyan,
|
|
16
|
+
firstHeading: chalk.bold.magenta,
|
|
17
|
+
// Text styles
|
|
18
|
+
strong: chalk.bold,
|
|
19
|
+
em: chalk.italic,
|
|
20
|
+
del: chalk.strikethrough.gray,
|
|
21
|
+
// Links and references
|
|
22
|
+
link: chalk.blue.underline,
|
|
23
|
+
href: chalk.blue.underline,
|
|
24
|
+
// Lists
|
|
25
|
+
listitem: chalk.reset,
|
|
26
|
+
// Code highlighting
|
|
27
|
+
codespan: chalk.yellow,
|
|
28
|
+
// Misc
|
|
29
|
+
unescape: true,
|
|
30
|
+
emoji: true,
|
|
31
|
+
width: process.stdout.columns || 80,
|
|
32
|
+
showSectionPrefix: false,
|
|
33
|
+
reflowText: true,
|
|
34
|
+
tab: 2,
|
|
35
|
+
}));
|
|
36
|
+
/**
|
|
37
|
+
* Render markdown text to styled terminal output
|
|
38
|
+
*/
|
|
39
|
+
export function renderMarkdown(text) {
|
|
40
|
+
try {
|
|
41
|
+
const result = marked.parse(text);
|
|
42
|
+
// Handle both sync and async results (marked can return a promise)
|
|
43
|
+
if (typeof result === 'string') {
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
// If it's a promise, we'll handle it synchronously for now
|
|
47
|
+
return text;
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
// Fallback to plain text on error
|
|
51
|
+
return text;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Render a tool call indicator
|
|
56
|
+
*/
|
|
57
|
+
export function renderToolCall(name) {
|
|
58
|
+
return chalk.dim(`๐ง Using tool: ${chalk.cyan(name)}...`);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Render a tool result indicator
|
|
62
|
+
*/
|
|
63
|
+
export function renderToolResult(name, success = true) {
|
|
64
|
+
const icon = success ? chalk.green('โ') : chalk.red('โ');
|
|
65
|
+
return chalk.dim(`${icon} Tool ${chalk.cyan(name)} completed`);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Render MCP tool call indicator
|
|
69
|
+
*/
|
|
70
|
+
export function renderMcpToolCall(serverName, toolName) {
|
|
71
|
+
return chalk.dim(`๐ MCP: ${chalk.yellow(serverName)} โ ${chalk.cyan(toolName)}...`);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Render MCP tool result indicator
|
|
75
|
+
*/
|
|
76
|
+
export function renderMcpToolResult(serverName, toolName, success = true) {
|
|
77
|
+
const icon = success ? chalk.green('โ') : chalk.red('โ');
|
|
78
|
+
return chalk.dim(`${icon} MCP: ${chalk.yellow(serverName)} โ ${chalk.cyan(toolName)} completed`);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Render an error message
|
|
82
|
+
*/
|
|
83
|
+
export function renderError(message) {
|
|
84
|
+
return chalk.red(`\nโ Error: ${message}\n`);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Render a success message
|
|
88
|
+
*/
|
|
89
|
+
export function renderSuccess(message) {
|
|
90
|
+
return chalk.green(`โ ${message}`);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Render the agent prompt
|
|
94
|
+
*/
|
|
95
|
+
export function renderPrompt() {
|
|
96
|
+
return chalk.bold.blue('You: ');
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Render the agent label
|
|
100
|
+
*/
|
|
101
|
+
export function renderAgentLabel() {
|
|
102
|
+
return chalk.bold.magenta('Pรฆan: ');
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Render welcome message
|
|
106
|
+
*/
|
|
107
|
+
export function renderWelcome(mcpToolCount) {
|
|
108
|
+
const lines = [
|
|
109
|
+
'',
|
|
110
|
+
chalk.bold.cyan('โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ'),
|
|
111
|
+
chalk.bold.cyan('โ') + chalk.bold.white(' Pรฆan AI Agent Mode ') + chalk.bold.cyan('โ'),
|
|
112
|
+
chalk.bold.cyan('โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ'),
|
|
113
|
+
'',
|
|
114
|
+
];
|
|
115
|
+
if (mcpToolCount !== undefined && mcpToolCount > 0) {
|
|
116
|
+
lines.push(chalk.dim(` ๐ MCP: ${chalk.green(mcpToolCount)} tools connected`));
|
|
117
|
+
}
|
|
118
|
+
lines.push(chalk.dim(' Type your message and press Enter to send.'), chalk.dim(' Press Ctrl+C to exit.'), '');
|
|
119
|
+
return lines.join('\n');
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Render goodbye message
|
|
123
|
+
*/
|
|
124
|
+
export function renderGoodbye() {
|
|
125
|
+
return chalk.dim('\n๐ Goodbye!\n');
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Render thinking indicator
|
|
129
|
+
*/
|
|
130
|
+
export function renderThinking() {
|
|
131
|
+
return chalk.dim('๐ญ Thinking...');
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/agent/renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Service
|
|
3
|
+
* SSE-based streaming agent service for communicating with Paean AI cloud
|
|
4
|
+
*/
|
|
5
|
+
import type { CliModeOptions } from './cli-mode.js';
|
|
6
|
+
import type { AgentStreamCallbacks, McpState, McpToolResult } from './types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Stream options for agent messages
|
|
9
|
+
*/
|
|
10
|
+
export interface StreamOptions {
|
|
11
|
+
conversationId?: string;
|
|
12
|
+
mcpState?: McpState;
|
|
13
|
+
cliMode?: Partial<CliModeOptions>;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Agent Service class for streaming communication
|
|
17
|
+
*/
|
|
18
|
+
export declare class AgentService {
|
|
19
|
+
private abortController;
|
|
20
|
+
/**
|
|
21
|
+
* Stream a message to the agent and handle SSE events
|
|
22
|
+
*/
|
|
23
|
+
streamMessage(message: string, callbacks: AgentStreamCallbacks, options?: StreamOptions): Promise<{
|
|
24
|
+
abort: () => void;
|
|
25
|
+
}>;
|
|
26
|
+
/**
|
|
27
|
+
* Process SSE stream
|
|
28
|
+
*/
|
|
29
|
+
private processStream;
|
|
30
|
+
/**
|
|
31
|
+
* Handle individual SSE events
|
|
32
|
+
*/
|
|
33
|
+
private handleEvent;
|
|
34
|
+
/**
|
|
35
|
+
* Submit MCP tool result back to the API
|
|
36
|
+
*/
|
|
37
|
+
submitMcpResult(conversationId: string, callId: string, result: McpToolResult): Promise<boolean>;
|
|
38
|
+
/**
|
|
39
|
+
* Abort the current stream
|
|
40
|
+
*/
|
|
41
|
+
abort(): void;
|
|
42
|
+
}
|
|
43
|
+
export declare const agentService: AgentService;
|
|
44
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/agent/service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAER,oBAAoB,EACpB,QAAQ,EACR,aAAa,EAChB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,qBAAa,YAAY;IACrB,OAAO,CAAC,eAAe,CAAgC;IAEvD;;OAEG;IACG,aAAa,CACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,oBAAoB,EAC/B,OAAO,CAAC,EAAE,aAAa,GACxB,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;IAmDjC;;OAEG;YACW,aAAa;IAuC3B;;OAEG;YACW,WAAW;IAgGzB;;OAEG;IACG,eAAe,CACjB,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,CAAC;IAqBnB;;OAEG;IACH,KAAK,IAAI,IAAI;CAGhB;AAGD,eAAO,MAAM,YAAY,cAAqB,CAAC"}
|