@copado/agentia-cli 0.117.0-alpha.0 → 0.119.0-alpha.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/README.md +225 -294
- package/dist/commands/cicd/notification/configure.d.ts +1 -1
- package/dist/commands/cicd/work/deployment-step/create.d.ts +1 -1
- package/dist/commands/testing/build/run.d.ts +2 -2
- package/dist/commands/testing/data-table/create.d.ts +1 -1
- package/dist/commands/testing/data-table/update.d.ts +1 -1
- package/dist/commands/testing/job/create.d.ts +1 -1
- package/dist/commands/testing/job/schedule/set.d.ts +1 -1
- package/dist/commands/testing/job/update.d.ts +1 -1
- package/dist/commands/testing/robot/update.d.ts +1 -1
- package/dist/commands/testing/run.d.ts +2 -2
- package/dist/commands/testing/test/run.d.ts +2 -2
- package/dist/lib/ai-chat-session.d.ts +0 -3
- package/dist/lib/ai-chat-session.js +66 -182
- package/dist/lib/ai-chat-session.js.map +1 -1
- package/dist/lib/ai-gateway.d.ts +1 -8
- package/dist/lib/ai-gateway.js +2 -34
- package/dist/lib/ai-gateway.js.map +1 -1
- package/dist/lib/ai-types.d.ts +0 -18
- package/dist/lib/ai-types.js +1 -45
- package/dist/lib/ai-types.js.map +1 -1
- package/dist/lib/cicd-gateway.d.ts +1 -0
- package/dist/lib/cicd-gateway.js +14 -1
- package/dist/lib/cicd-gateway.js.map +1 -1
- package/dist/lib/format.d.ts +0 -2
- package/dist/lib/format.js +2 -5
- package/dist/lib/format.js.map +1 -1
- package/dist/lib/mcp/tools.d.ts +2 -2
- package/dist/lib/testing-data-command.d.ts +1 -1
- package/dist/lib/testing-flags.d.ts +2 -2
- package/oclif.manifest.json +458 -609
- package/package.json +1 -10
- package/templates/skills/agentia-ai/SKILL.md +5 -5
- package/templates/skills/agentia-ai/references/ai-agents.md +3 -18
- package/dist/commands/ai/session/list.d.ts +0 -14
- package/dist/commands/ai/session/list.js +0 -46
- package/dist/commands/ai/session/list.js.map +0 -1
- package/dist/commands/ai/session/start.d.ts +0 -17
- package/dist/commands/ai/session/start.js +0 -60
- package/dist/commands/ai/session/start.js.map +0 -1
- package/dist/lib/ai-session-banner.d.ts +0 -5
- package/dist/lib/ai-session-banner.js +0 -20
- package/dist/lib/ai-session-banner.js.map +0 -1
- package/dist/lib/ai-session-tui-blocks.d.ts +0 -9
- package/dist/lib/ai-session-tui-blocks.js +0 -36
- package/dist/lib/ai-session-tui-blocks.js.map +0 -1
- package/dist/lib/ai-session-tui-clipboard.d.ts +0 -22
- package/dist/lib/ai-session-tui-clipboard.js +0 -78
- package/dist/lib/ai-session-tui-clipboard.js.map +0 -1
- package/dist/lib/ai-session-tui-composer.d.ts +0 -35
- package/dist/lib/ai-session-tui-composer.js +0 -96
- package/dist/lib/ai-session-tui-composer.js.map +0 -1
- package/dist/lib/ai-session-tui-highlight.d.ts +0 -11
- package/dist/lib/ai-session-tui-highlight.js +0 -310
- package/dist/lib/ai-session-tui-highlight.js.map +0 -1
- package/dist/lib/ai-session-tui-keys.d.ts +0 -42
- package/dist/lib/ai-session-tui-keys.js +0 -159
- package/dist/lib/ai-session-tui-keys.js.map +0 -1
- package/dist/lib/ai-session-tui-mermaid-image.d.ts +0 -43
- package/dist/lib/ai-session-tui-mermaid-image.js +0 -444
- package/dist/lib/ai-session-tui-mermaid-image.js.map +0 -1
- package/dist/lib/ai-session-tui-mermaid-paint.d.ts +0 -3
- package/dist/lib/ai-session-tui-mermaid-paint.js +0 -182
- package/dist/lib/ai-session-tui-mermaid-paint.js.map +0 -1
- package/dist/lib/ai-session-tui-mermaid.d.ts +0 -19
- package/dist/lib/ai-session-tui-mermaid.js +0 -158
- package/dist/lib/ai-session-tui-mermaid.js.map +0 -1
- package/dist/lib/ai-session-tui-message.d.ts +0 -9
- package/dist/lib/ai-session-tui-message.js +0 -24
- package/dist/lib/ai-session-tui-message.js.map +0 -1
- package/dist/lib/ai-session-tui-scroll.d.ts +0 -32
- package/dist/lib/ai-session-tui-scroll.js +0 -148
- package/dist/lib/ai-session-tui-scroll.js.map +0 -1
- package/dist/lib/ai-session-tui-slash.d.ts +0 -14
- package/dist/lib/ai-session-tui-slash.js +0 -53
- package/dist/lib/ai-session-tui-slash.js.map +0 -1
- package/dist/lib/ai-session-tui-welcome.d.ts +0 -12
- package/dist/lib/ai-session-tui-welcome.js +0 -33
- package/dist/lib/ai-session-tui-welcome.js.map +0 -1
- package/dist/lib/ai-session-tui-wrap.d.ts +0 -2
- package/dist/lib/ai-session-tui-wrap.js +0 -24
- package/dist/lib/ai-session-tui-wrap.js.map +0 -1
- package/dist/lib/ai-session-tui.d.ts +0 -7
- package/dist/lib/ai-session-tui.js +0 -859
- package/dist/lib/ai-session-tui.js.map +0 -1
- package/dist/lib/ai-sessions.d.ts +0 -17
- package/dist/lib/ai-sessions.js +0 -142
- package/dist/lib/ai-sessions.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ai-session-tui-mermaid-paint.js","sourceRoot":"","sources":["../../src/lib/ai-session-tui-mermaid-paint.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { type HighlightSpan } from './ai-session-tui-highlight.js';
|
|
2
|
-
import { type MermaidImageProtocol, type MermaidImageRecord, type MermaidImageSlot } from './ai-session-tui-mermaid-image.js';
|
|
3
|
-
export type MermaidRenderMode = 'ascii' | 'auto' | 'image';
|
|
4
|
-
export type MermaidDiagramView = {
|
|
5
|
-
image?: MermaidImageRecord;
|
|
6
|
-
lines: string[];
|
|
7
|
-
protocol: MermaidImageProtocol;
|
|
8
|
-
shapeKey?: HighlightSpan[];
|
|
9
|
-
slotKind?: MermaidImageSlot['kind'];
|
|
10
|
-
};
|
|
11
|
-
export declare function isMermaidLanguage(language: string): boolean;
|
|
12
|
-
export declare function normalizeMermaidSource(source: string): string;
|
|
13
|
-
export declare function renderMermaidDiagram(source: string): string | undefined;
|
|
14
|
-
export declare function mermaidDiagramRows(source: string, width: number): string[] | undefined;
|
|
15
|
-
export declare function mermaidShapeKey(source: string): HighlightSpan[] | undefined;
|
|
16
|
-
export declare function colorizeMermaidArtLine(line: string): HighlightSpan[];
|
|
17
|
-
export declare function mermaidImageRowText(slot: MermaidImageSlot): string;
|
|
18
|
-
export declare function mermaidDiagramView(source: string, width: number, mode?: MermaidRenderMode): MermaidDiagramView | undefined;
|
|
19
|
-
export declare function mermaidSlotColor(slot: MermaidImageSlot): string | undefined;
|
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
import { parseMermaid, renderMermaidASCII } from 'beautiful-mermaid';
|
|
2
|
-
import { detectMermaidImageProtocol, kittyPlaceholderRow, mermaidImageColor, mermaidImageSlotKind, overlaySlotText, rasterizeMermaidPng, } from './ai-session-tui-mermaid-image.js';
|
|
3
|
-
import { paintMermaidShapeKey } from './ai-session-tui-mermaid-paint.js';
|
|
4
|
-
const MERMAID_LANGUAGES = new Set(['mermaid', 'mmd']);
|
|
5
|
-
const MAX_MERMAID_SOURCE = 16_384;
|
|
6
|
-
const MAX_CACHE = 24;
|
|
7
|
-
const FLOWCHART_ONE_LINE = /^(graph|flowchart)\s+(TD|TB|LR|BT|RL)\s*;\s*(.+)$/iu;
|
|
8
|
-
const ART_COLORS = {
|
|
9
|
-
'(': 'cyan',
|
|
10
|
-
')': 'cyan',
|
|
11
|
-
'⌜': 'magenta',
|
|
12
|
-
'⌝': 'magenta',
|
|
13
|
-
'⌞': 'magenta',
|
|
14
|
-
'⌟': 'magenta',
|
|
15
|
-
'┌': 'blue',
|
|
16
|
-
'┐': 'blue',
|
|
17
|
-
'└': 'blue',
|
|
18
|
-
'┘': 'blue',
|
|
19
|
-
'╭': 'cyan',
|
|
20
|
-
'╮': 'cyan',
|
|
21
|
-
'╯': 'cyan',
|
|
22
|
-
'╰': 'cyan',
|
|
23
|
-
'▲': 'green',
|
|
24
|
-
'►': 'green',
|
|
25
|
-
'▼': 'green',
|
|
26
|
-
'◄': 'green',
|
|
27
|
-
'◇': 'yellow',
|
|
28
|
-
'◎': 'magenta',
|
|
29
|
-
'◯': 'magenta',
|
|
30
|
-
};
|
|
31
|
-
const cache = new Map();
|
|
32
|
-
export function isMermaidLanguage(language) {
|
|
33
|
-
const first = language.trim().split(/\s+/u)[0]?.toLowerCase();
|
|
34
|
-
return first !== undefined && MERMAID_LANGUAGES.has(first);
|
|
35
|
-
}
|
|
36
|
-
export function normalizeMermaidSource(source) {
|
|
37
|
-
const trimmed = source.replaceAll('\r\n', '\n').trim();
|
|
38
|
-
if (trimmed.length === 0)
|
|
39
|
-
return trimmed;
|
|
40
|
-
const lines = trimmed.split('\n');
|
|
41
|
-
const first = lines[0]?.trim() ?? '';
|
|
42
|
-
const oneLine = FLOWCHART_ONE_LINE.exec(first);
|
|
43
|
-
if (oneLine === null)
|
|
44
|
-
return trimmed;
|
|
45
|
-
const kind = oneLine[1];
|
|
46
|
-
const direction = oneLine[2];
|
|
47
|
-
const rest = oneLine[3];
|
|
48
|
-
if (kind === undefined || direction === undefined || rest === undefined)
|
|
49
|
-
return trimmed;
|
|
50
|
-
return [`${kind} ${direction}`, rest, ...lines.slice(1)].join('\n');
|
|
51
|
-
}
|
|
52
|
-
function cacheGet(key) {
|
|
53
|
-
return cache.get(key);
|
|
54
|
-
}
|
|
55
|
-
function cacheSet(key, value) {
|
|
56
|
-
if (cache.size >= MAX_CACHE) {
|
|
57
|
-
const oldest = cache.keys().next().value;
|
|
58
|
-
if (oldest !== undefined)
|
|
59
|
-
cache.delete(oldest);
|
|
60
|
-
}
|
|
61
|
-
cache.set(key, value);
|
|
62
|
-
}
|
|
63
|
-
export function renderMermaidDiagram(source) {
|
|
64
|
-
const normalized = normalizeMermaidSource(source);
|
|
65
|
-
if (normalized.length === 0 || normalized.length > MAX_MERMAID_SOURCE)
|
|
66
|
-
return undefined;
|
|
67
|
-
const cached = cacheGet(normalized);
|
|
68
|
-
if (cached !== undefined)
|
|
69
|
-
return cached;
|
|
70
|
-
try {
|
|
71
|
-
const art = renderMermaidASCII(normalized, {
|
|
72
|
-
boxBorderPadding: 0,
|
|
73
|
-
colorMode: 'none',
|
|
74
|
-
paddingX: 3,
|
|
75
|
-
paddingY: 2,
|
|
76
|
-
}).replaceAll(/\s+$/gmu, '');
|
|
77
|
-
if (art.trim().length === 0)
|
|
78
|
-
return undefined;
|
|
79
|
-
cacheSet(normalized, art);
|
|
80
|
-
return art;
|
|
81
|
-
}
|
|
82
|
-
catch {
|
|
83
|
-
return undefined;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
export function mermaidDiagramRows(source, width) {
|
|
87
|
-
const art = renderMermaidDiagram(source);
|
|
88
|
-
if (art === undefined)
|
|
89
|
-
return undefined;
|
|
90
|
-
const inner = Math.max(1, width - 2);
|
|
91
|
-
return art.split('\n').map((line) => (line.length <= inner ? line : `${line.slice(0, Math.max(1, inner - 1))}…`));
|
|
92
|
-
}
|
|
93
|
-
export function mermaidShapeKey(source) {
|
|
94
|
-
try {
|
|
95
|
-
const graph = parseMermaid(normalizeMermaidSource(source));
|
|
96
|
-
const shapes = new Set();
|
|
97
|
-
for (const node of graph.nodes.values())
|
|
98
|
-
shapes.add(node.shape);
|
|
99
|
-
return paintMermaidShapeKey(shapes);
|
|
100
|
-
}
|
|
101
|
-
catch {
|
|
102
|
-
return undefined;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
export function colorizeMermaidArtLine(line) {
|
|
106
|
-
const spans = [];
|
|
107
|
-
let current = '';
|
|
108
|
-
let color;
|
|
109
|
-
const flush = () => {
|
|
110
|
-
if (current.length === 0)
|
|
111
|
-
return;
|
|
112
|
-
spans.push({ ...(color === undefined ? {} : { color }), text: current });
|
|
113
|
-
current = '';
|
|
114
|
-
};
|
|
115
|
-
for (const char of line) {
|
|
116
|
-
const next = ART_COLORS[char];
|
|
117
|
-
if (next !== color) {
|
|
118
|
-
flush();
|
|
119
|
-
color = next;
|
|
120
|
-
}
|
|
121
|
-
current += char;
|
|
122
|
-
}
|
|
123
|
-
flush();
|
|
124
|
-
return spans.length === 0 ? [{ text: ' ' }] : spans;
|
|
125
|
-
}
|
|
126
|
-
function resolveMermaidProtocol(mode) {
|
|
127
|
-
if (mode === 'ascii')
|
|
128
|
-
return 'none';
|
|
129
|
-
const detected = detectMermaidImageProtocol();
|
|
130
|
-
if (mode === 'auto')
|
|
131
|
-
return detected;
|
|
132
|
-
return detected === 'none' ? 'kitty-placeholder' : detected;
|
|
133
|
-
}
|
|
134
|
-
export function mermaidImageRowText(slot) {
|
|
135
|
-
if (slot.kind === 'placeholder')
|
|
136
|
-
return kittyPlaceholderRow(slot.row, slot.cols);
|
|
137
|
-
return overlaySlotText(slot.id, slot.row, slot.cols);
|
|
138
|
-
}
|
|
139
|
-
export function mermaidDiagramView(source, width, mode = 'auto') {
|
|
140
|
-
const lines = mermaidDiagramRows(source, width);
|
|
141
|
-
if (lines === undefined)
|
|
142
|
-
return undefined;
|
|
143
|
-
const normalized = normalizeMermaidSource(source);
|
|
144
|
-
const protocol = resolveMermaidProtocol(mode);
|
|
145
|
-
const slotKind = mermaidImageSlotKind(protocol);
|
|
146
|
-
const shapeKey = mermaidShapeKey(normalized);
|
|
147
|
-
if (slotKind !== undefined) {
|
|
148
|
-
const image = rasterizeMermaidPng(normalized, width);
|
|
149
|
-
if (image === undefined)
|
|
150
|
-
return { lines, protocol: 'none', ...(shapeKey === undefined ? {} : { shapeKey }) };
|
|
151
|
-
return { image, lines, protocol, slotKind };
|
|
152
|
-
}
|
|
153
|
-
return { lines, protocol: 'none', ...(shapeKey === undefined ? {} : { shapeKey }) };
|
|
154
|
-
}
|
|
155
|
-
export function mermaidSlotColor(slot) {
|
|
156
|
-
return slot.kind === 'placeholder' ? mermaidImageColor(slot.id) : undefined;
|
|
157
|
-
}
|
|
158
|
-
//# sourceMappingURL=ai-session-tui-mermaid.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ai-session-tui-mermaid.js","sourceRoot":"","sources":["../../src/lib/ai-session-tui-mermaid.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Text } from 'ink';
|
|
3
|
-
import { splitAgentMarkdown } from './ai-session-tui-blocks.js';
|
|
4
|
-
import { renderMarkdown } from './ai-terminal-renderer.js';
|
|
5
|
-
export function TranscriptLineView(props) {
|
|
6
|
-
if (props.line.kind === 'agent') {
|
|
7
|
-
return _jsx(AgentMessage, { text: props.line.text });
|
|
8
|
-
}
|
|
9
|
-
return (_jsxs(Text, { color: props.line.kind === 'system' ? 'yellow' : undefined, children: [props.line.kind === 'you' ? 'You: ' : '', props.line.text] }));
|
|
10
|
-
}
|
|
11
|
-
export function AgentMessage(props) {
|
|
12
|
-
const blocks = splitAgentMarkdown(props.text);
|
|
13
|
-
if (blocks.length === 0) {
|
|
14
|
-
return _jsx(Text, { children: "Agent:" });
|
|
15
|
-
}
|
|
16
|
-
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { children: "Agent:" }), blocks.map((block, index) => (_jsx(AgentBlockView, { block: block }, index)))] }));
|
|
17
|
-
}
|
|
18
|
-
function AgentBlockView(props) {
|
|
19
|
-
if (props.block.type === 'prose') {
|
|
20
|
-
return _jsx(Text, { children: renderMarkdown(props.block.text, { colors: false }) });
|
|
21
|
-
}
|
|
22
|
-
return (_jsxs(Box, { borderColor: "cyan", borderStyle: "round", flexDirection: "column", marginY: 0, paddingX: 1, children: [props.block.language.length > 0 ? _jsx(Text, { dimColor: true, children: props.block.language }) : null, props.block.code.split('\n').map((line, index) => (_jsx(Text, { color: "cyan", children: line.length === 0 ? ' ' : line }, index)))] }));
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=ai-session-tui-message.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ai-session-tui-message.js","sourceRoot":"","sources":["../../src/lib/ai-session-tui-message.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,KAAK,CAAA;AAE7B,OAAO,EAA0B,kBAAkB,EAAC,MAAM,4BAA4B,CAAA;AACtF,OAAO,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAA;AAExD,MAAM,UAAU,kBAAkB,CAAC,KAA+D;IAChG,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAChC,OAAO,KAAC,YAAY,IAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,GAAI,CAAA;IAChD,CAAC;IAED,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,aAC7D,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EACxC,KAAK,CAAC,IAAI,CAAC,IAAI,IACX,CACR,CAAA;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAqB;IAChD,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC7C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,KAAC,IAAI,yBAAc,CAAA;IAC5B,CAAC;IAED,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,IAAI,yBAAc,EAClB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5B,KAAC,cAAc,IAAC,KAAK,EAAE,KAAK,IAAO,KAAK,CAAI,CAC7C,CAAC,IACE,CACP,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CAAC,KAAkC;IACxD,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO,KAAC,IAAI,cAAE,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC,CAAC,GAAQ,CAAA;IACzE,CAAC;IAED,OAAO,CACL,MAAC,GAAG,IAAC,WAAW,EAAC,MAAM,EAAC,WAAW,EAAC,OAAO,EAAC,aAAa,EAAC,QAAQ,EAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,aACvF,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,QAAQ,kBAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAQ,CAAC,CAAC,CAAC,IAAI,EACrF,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CACjD,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YACf,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IADT,KAAK,CAEtB,CACR,CAAC,IACE,CACP,CAAA;AACH,CAAC"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { type HighlightSpan } from './ai-session-tui-highlight.js';
|
|
2
|
-
import { type MermaidImageSlot } from './ai-session-tui-mermaid-image.js';
|
|
3
|
-
import { type MermaidRenderMode } from './ai-session-tui-mermaid.js';
|
|
4
|
-
export type TranscriptLineKind = 'agent' | 'followups' | 'system' | 'you';
|
|
5
|
-
export type FlattenTranscriptOptions = {
|
|
6
|
-
mermaid?: MermaidRenderMode;
|
|
7
|
-
};
|
|
8
|
-
export type TranscriptViewRow = {
|
|
9
|
-
bold?: boolean;
|
|
10
|
-
color?: 'cyan' | 'green' | 'magenta' | 'yellow';
|
|
11
|
-
dim?: boolean;
|
|
12
|
-
id: string;
|
|
13
|
-
imageColor?: string;
|
|
14
|
-
imageSlot?: MermaidImageSlot;
|
|
15
|
-
spans?: HighlightSpan[];
|
|
16
|
-
text: string;
|
|
17
|
-
};
|
|
18
|
-
export declare function flattenTranscriptLine(line: {
|
|
19
|
-
id: string;
|
|
20
|
-
items?: string[];
|
|
21
|
-
kind: TranscriptLineKind;
|
|
22
|
-
text: string;
|
|
23
|
-
}, width?: number, options?: FlattenTranscriptOptions): TranscriptViewRow[];
|
|
24
|
-
export declare function flattenTranscript(lines: Array<{
|
|
25
|
-
id: string;
|
|
26
|
-
items?: string[];
|
|
27
|
-
kind: TranscriptLineKind;
|
|
28
|
-
text: string;
|
|
29
|
-
}>, width?: number, options?: FlattenTranscriptOptions): TranscriptViewRow[];
|
|
30
|
-
export declare function clampScrollOffset(rowCount: number, viewport: number, offset: number): number;
|
|
31
|
-
export declare function chatViewportHeight(frameHeight: number, hasStatus: boolean, extraRows?: number): number;
|
|
32
|
-
export declare function visibleTranscriptRows(rows: TranscriptViewRow[], viewport: number, offsetFromEnd: number): TranscriptViewRow[];
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
import { splitAgentMarkdown } from './ai-session-tui-blocks.js';
|
|
2
|
-
import { highlightCodeLine, spansText, wrapSpans } from './ai-session-tui-highlight.js';
|
|
3
|
-
import { paintMermaidArt } from './ai-session-tui-mermaid-paint.js';
|
|
4
|
-
import { colorizeMermaidArtLine, isMermaidLanguage, mermaidDiagramView, mermaidImageRowText, mermaidSlotColor, } from './ai-session-tui-mermaid.js';
|
|
5
|
-
import { wrapText } from './ai-session-tui-wrap.js';
|
|
6
|
-
import { renderMarkdown } from './ai-terminal-renderer.js';
|
|
7
|
-
function flattenCodeBlock(rows, idPrefix, block) {
|
|
8
|
-
const diagram = isMermaidLanguage(block.language) ? mermaidDiagramView(block.code, block.columns, block.mermaid) : undefined;
|
|
9
|
-
if (diagram !== undefined) {
|
|
10
|
-
flattenDiagramBlock(rows, idPrefix, diagram);
|
|
11
|
-
return;
|
|
12
|
-
}
|
|
13
|
-
const header = block.language.length > 0 ? `┌ ${block.language} · /copy` : '┌ code · /copy';
|
|
14
|
-
rows.push({ dim: true, id: `${idPrefix}-h`, text: header });
|
|
15
|
-
for (const [lineIndex, codeLine] of block.code.split('\n').entries()) {
|
|
16
|
-
const spans = [{ dim: true, text: '│ ' }, ...highlightCodeLine(codeLine, block.language)];
|
|
17
|
-
for (const [wrapIndex, wrapped] of wrapSpans(spans, block.columns).entries()) {
|
|
18
|
-
rows.push({
|
|
19
|
-
id: `${idPrefix}-${lineIndex}-${wrapIndex}`,
|
|
20
|
-
spans: wrapped,
|
|
21
|
-
text: spansText(wrapped),
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
rows.push({ dim: true, id: `${idPrefix}-f`, text: '└' });
|
|
26
|
-
}
|
|
27
|
-
function flattenDiagramBlock(rows, idPrefix, diagram) {
|
|
28
|
-
rows.push({ dim: true, id: `${idPrefix}-h`, text: '┌ mermaid · /copy' });
|
|
29
|
-
if (diagram.image !== undefined && diagram.slotKind !== undefined) {
|
|
30
|
-
for (let row = 0; row < diagram.image.rows; row += 1) {
|
|
31
|
-
const slot = {
|
|
32
|
-
cols: diagram.image.cols,
|
|
33
|
-
id: diagram.image.id,
|
|
34
|
-
kind: diagram.slotKind,
|
|
35
|
-
row,
|
|
36
|
-
rows: diagram.image.rows,
|
|
37
|
-
};
|
|
38
|
-
const color = mermaidSlotColor(slot);
|
|
39
|
-
rows.push({
|
|
40
|
-
id: `${idPrefix}-${row}`,
|
|
41
|
-
...(color === undefined ? {} : { imageColor: color }),
|
|
42
|
-
imageSlot: slot,
|
|
43
|
-
text: mermaidImageRowText(slot),
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
const painted = paintMermaidArt(diagram.lines);
|
|
49
|
-
for (const [lineIndex, line] of diagram.lines.entries()) {
|
|
50
|
-
if (line.length === 0) {
|
|
51
|
-
rows.push({ dim: true, id: `${idPrefix}-${lineIndex}`, text: '│' });
|
|
52
|
-
continue;
|
|
53
|
-
}
|
|
54
|
-
const art = painted?.[lineIndex] ?? colorizeMermaidArtLine(line);
|
|
55
|
-
const spans = [{ dim: true, text: '│ ' }, ...art];
|
|
56
|
-
rows.push({
|
|
57
|
-
id: `${idPrefix}-${lineIndex}`,
|
|
58
|
-
spans,
|
|
59
|
-
text: `│ ${spansText(art)}`,
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
if (diagram.shapeKey !== undefined) {
|
|
63
|
-
rows.push({
|
|
64
|
-
id: `${idPrefix}-key`,
|
|
65
|
-
spans: [{ dim: true, text: '│ ' }, ...diagram.shapeKey],
|
|
66
|
-
text: `│ ${spansText(diagram.shapeKey)}`,
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
rows.push({ dim: true, id: `${idPrefix}-f`, text: '└' });
|
|
71
|
-
}
|
|
72
|
-
function flattenYouBlock(lineId, text, columns) {
|
|
73
|
-
const inner = Math.max(1, columns - 2);
|
|
74
|
-
const rows = [{ bold: true, color: 'cyan', id: `${lineId}-you-h`, text: '╭ You' }];
|
|
75
|
-
for (const [index, part] of wrapText(text.length === 0 ? ' ' : text, inner).entries()) {
|
|
76
|
-
rows.push({
|
|
77
|
-
id: `${lineId}-you-${index}`,
|
|
78
|
-
spans: [
|
|
79
|
-
{ color: 'cyan', dim: true, text: '│ ' },
|
|
80
|
-
{ text: part },
|
|
81
|
-
],
|
|
82
|
-
text: `│ ${part}`,
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
rows.push({ dim: true, id: `${lineId}-you-f`, text: '╰' });
|
|
86
|
-
return rows;
|
|
87
|
-
}
|
|
88
|
-
function pushWrapped(rows, idPrefix, text, options) {
|
|
89
|
-
for (const [index, part] of wrapText(text, options.width).entries()) {
|
|
90
|
-
rows.push({
|
|
91
|
-
...(options.color === undefined ? {} : { color: options.color }),
|
|
92
|
-
...(options.dim === true ? { dim: true } : {}),
|
|
93
|
-
id: `${idPrefix}-${index}`,
|
|
94
|
-
text: part,
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
export function flattenTranscriptLine(line, width = 80, options = {}) {
|
|
99
|
-
const columns = Math.max(20, width);
|
|
100
|
-
const mermaid = options.mermaid ?? 'auto';
|
|
101
|
-
if (line.kind === 'you') {
|
|
102
|
-
return flattenYouBlock(line.id, line.text, columns);
|
|
103
|
-
}
|
|
104
|
-
if (line.kind === 'system') {
|
|
105
|
-
const rows = [];
|
|
106
|
-
pushWrapped(rows, `${line.id}-sys`, line.text, { color: 'yellow', width: columns });
|
|
107
|
-
return rows;
|
|
108
|
-
}
|
|
109
|
-
if (line.kind === 'followups') {
|
|
110
|
-
const rows = [{ id: `${line.id}-f-h`, text: 'Follow-ups:' }];
|
|
111
|
-
for (const [itemIndex, item] of (line.items ?? []).entries()) {
|
|
112
|
-
pushWrapped(rows, `${line.id}-f-${itemIndex}`, ` ${itemIndex + 1}. ${item}`, { width: columns });
|
|
113
|
-
}
|
|
114
|
-
return rows;
|
|
115
|
-
}
|
|
116
|
-
const rows = [{ bold: true, color: 'green', id: `${line.id}-agent`, text: '● Agent' }];
|
|
117
|
-
for (const [blockIndex, block] of splitAgentMarkdown(line.text).entries()) {
|
|
118
|
-
if (block.type === 'prose') {
|
|
119
|
-
for (const [lineIndex, part] of renderMarkdown(block.text, { colors: false }).split('\n').entries()) {
|
|
120
|
-
pushWrapped(rows, `${line.id}-p${blockIndex}-${lineIndex}`, part, { width: columns });
|
|
121
|
-
}
|
|
122
|
-
continue;
|
|
123
|
-
}
|
|
124
|
-
flattenCodeBlock(rows, `${line.id}-c${blockIndex}`, { ...block, columns, mermaid });
|
|
125
|
-
}
|
|
126
|
-
return rows;
|
|
127
|
-
}
|
|
128
|
-
export function flattenTranscript(lines, width = 80, options = {}) {
|
|
129
|
-
return lines.flatMap((line, index) => {
|
|
130
|
-
const rows = flattenTranscriptLine(line, width, options);
|
|
131
|
-
if (index === 0)
|
|
132
|
-
return rows;
|
|
133
|
-
return [{ id: `${line.id}-gap`, text: ' ' }, ...rows];
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
export function clampScrollOffset(rowCount, viewport, offset) {
|
|
137
|
-
return Math.min(Math.max(0, offset), Math.max(0, rowCount - Math.max(1, viewport)));
|
|
138
|
-
}
|
|
139
|
-
export function chatViewportHeight(frameHeight, hasStatus, extraRows = 0) {
|
|
140
|
-
return Math.max(4, frameHeight - (4 + (hasStatus ? 1 : 0) + Math.max(0, extraRows)));
|
|
141
|
-
}
|
|
142
|
-
export function visibleTranscriptRows(rows, viewport, offsetFromEnd) {
|
|
143
|
-
const size = Math.max(1, viewport);
|
|
144
|
-
const offset = clampScrollOffset(rows.length, size, offsetFromEnd);
|
|
145
|
-
const end = rows.length - offset;
|
|
146
|
-
return rows.slice(Math.max(0, end - size), end);
|
|
147
|
-
}
|
|
148
|
-
//# sourceMappingURL=ai-session-tui-scroll.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ai-session-tui-scroll.js","sourceRoot":"","sources":["../../src/lib/ai-session-tui-scroll.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export type SlashCommand = {
|
|
2
|
-
command: string;
|
|
3
|
-
description: string;
|
|
4
|
-
};
|
|
5
|
-
export declare const SLASH_PALETTE_MAX = 8;
|
|
6
|
-
export declare const SESSION_SLASH_COMMANDS: SlashCommand[];
|
|
7
|
-
export declare function filterSlashCommands(input: string): SlashCommand[];
|
|
8
|
-
export declare function clampSlashIndex(matchCount: number, index: number): number;
|
|
9
|
-
export declare function selectedSlashCommand(matches: SlashCommand[], index: number): SlashCommand | undefined;
|
|
10
|
-
export declare function sessionHelpLines(): string[];
|
|
11
|
-
export declare function slashPaletteWindow(matches: SlashCommand[], selectedIndex: number, max?: number): {
|
|
12
|
-
selectedInWindow: number;
|
|
13
|
-
window: SlashCommand[];
|
|
14
|
-
};
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { AI_CHAT_AGENTS } from './ai-types.js';
|
|
2
|
-
export const SLASH_PALETTE_MAX = 8;
|
|
3
|
-
export const SESSION_SLASH_COMMANDS = [
|
|
4
|
-
{ command: '/help', description: 'Show commands and keys' },
|
|
5
|
-
{ command: '/session', description: 'Resume another session' },
|
|
6
|
-
{ command: '/clear', description: 'Clear the local transcript' },
|
|
7
|
-
{ command: '/copy', description: 'Copy the last code block' },
|
|
8
|
-
{ command: '/new', description: 'Start a new session' },
|
|
9
|
-
{ command: '/exit', description: 'Leave the session' },
|
|
10
|
-
{ command: '/cancel', description: 'Dismiss overlays' },
|
|
11
|
-
...AI_CHAT_AGENTS.map((agent) => ({
|
|
12
|
-
command: `/${agent}`,
|
|
13
|
-
description: `Switch to ${agent} on this session`,
|
|
14
|
-
})),
|
|
15
|
-
];
|
|
16
|
-
export function filterSlashCommands(input) {
|
|
17
|
-
if (!input.startsWith('/') || input.includes(' '))
|
|
18
|
-
return [];
|
|
19
|
-
const needle = input.toLowerCase();
|
|
20
|
-
return SESSION_SLASH_COMMANDS.filter((item) => item.command.startsWith(needle));
|
|
21
|
-
}
|
|
22
|
-
export function clampSlashIndex(matchCount, index) {
|
|
23
|
-
if (matchCount <= 0)
|
|
24
|
-
return 0;
|
|
25
|
-
return Math.min(Math.max(0, index), matchCount - 1);
|
|
26
|
-
}
|
|
27
|
-
export function selectedSlashCommand(matches, index) {
|
|
28
|
-
return matches[clampSlashIndex(matches.length, index)];
|
|
29
|
-
}
|
|
30
|
-
export function sessionHelpLines() {
|
|
31
|
-
return [
|
|
32
|
-
'Type in the prompt and press Enter to send.',
|
|
33
|
-
'←/→ move the cursor. Home/End (Fn+← / Fn+→ on a Mac) jump to the start or end of the line.',
|
|
34
|
-
'↑/↓ scroll the transcript.',
|
|
35
|
-
'PgUp/PgDn reuse a prompt you already sent. On a Mac that is Fn+↑ / Fn+↓.',
|
|
36
|
-
'Follow-ups: after a reply, numbered suggestions appear. Clear the prompt, then press 1–5 to send that suggestion.',
|
|
37
|
-
'Slash: Tab complete, Enter run, Esc dismiss',
|
|
38
|
-
'Esc: dismiss overlay, cancel in-flight turn, or clear prompt',
|
|
39
|
-
'Copy: drag-select the screen, or /copy last fence without gutters',
|
|
40
|
-
'Mermaid: filled flowchart chips (Kitty can show a local PNG)',
|
|
41
|
-
`/clear local transcript · /new new session · /${AI_CHAT_AGENTS.join(' /')}`,
|
|
42
|
-
];
|
|
43
|
-
}
|
|
44
|
-
export function slashPaletteWindow(matches, selectedIndex, max = SLASH_PALETTE_MAX) {
|
|
45
|
-
if (matches.length === 0)
|
|
46
|
-
return { selectedInWindow: 0, window: [] };
|
|
47
|
-
const selected = clampSlashIndex(matches.length, selectedIndex);
|
|
48
|
-
if (matches.length <= max)
|
|
49
|
-
return { selectedInWindow: selected, window: matches };
|
|
50
|
-
const start = Math.max(0, selected - max + 1);
|
|
51
|
-
return { selectedInWindow: selected - start, window: matches.slice(start, start + max) };
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=ai-session-tui-slash.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ai-session-tui-slash.js","sourceRoot":"","sources":["../../src/lib/ai-session-tui-slash.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export declare const WELCOME_ACTIONS: readonly [{
|
|
2
|
-
readonly id: "new";
|
|
3
|
-
readonly label: "Start a new session";
|
|
4
|
-
}, {
|
|
5
|
-
readonly id: "resume";
|
|
6
|
-
readonly label: "Resume a previous session";
|
|
7
|
-
}];
|
|
8
|
-
export type WelcomeActionId = (typeof WELCOME_ACTIONS)[number]['id'];
|
|
9
|
-
export declare function WelcomeScreen(props: {
|
|
10
|
-
agent: string;
|
|
11
|
-
selectedIndex: number;
|
|
12
|
-
}): JSX.Element;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Text } from 'ink';
|
|
3
|
-
import { BANNER_GRADIENT, bannerUsesColor, COPADO_CONTEXT_HUB_ART, } from './ai-session-banner.js';
|
|
4
|
-
export const WELCOME_ACTIONS = [
|
|
5
|
-
{ id: 'new', label: 'Start a new session' },
|
|
6
|
-
{ id: 'resume', label: 'Resume a previous session' },
|
|
7
|
-
];
|
|
8
|
-
function displayAgentName(agent) {
|
|
9
|
-
if (agent.length === 0)
|
|
10
|
-
return agent;
|
|
11
|
-
return `${agent.slice(0, 1).toUpperCase()}${agent.slice(1)}`;
|
|
12
|
-
}
|
|
13
|
-
function welcomeAgentLine(agent) {
|
|
14
|
-
const name = displayAgentName(agent);
|
|
15
|
-
if (agent === 'orchestrate') {
|
|
16
|
-
return 'Orchestrate will route you to Plan, Build, Test, Release, Operate, or Knowledge.';
|
|
17
|
-
}
|
|
18
|
-
return `This session starts with ${name}. You can switch agents after you start.`;
|
|
19
|
-
}
|
|
20
|
-
export function WelcomeScreen(props) {
|
|
21
|
-
return (_jsxs(Box, { flexDirection: "column", paddingX: 1, paddingY: 1, children: [_jsx(BannerArt, {}), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { bold: true, children: "Ask Copado AI about stories, pipelines, tests, and releases." }), _jsx(Text, { children: welcomeAgentLine(props.agent) })] }), _jsxs(Box, { borderStyle: "single", flexDirection: "column", marginTop: 1, paddingX: 1, width: 64, children: [_jsx(Text, { bold: true, children: "How do you want to start?" }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: WELCOME_ACTIONS.map((action, index) => (_jsxs(Text, { color: index === props.selectedIndex ? 'green' : undefined, children: [index === props.selectedIndex ? '●' : ' ', " ", index + 1, ". ", action.label] }, action.id))) }), _jsx(Text, { dimColor: true, children: "\u2191/\u2193 or 1\u20132 \u00B7 Enter to continue" })] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { dimColor: true, children: "After you continue, type a question and press Enter." }), _jsx(Text, { dimColor: true, children: "/help lists commands and shortcuts once the session is open." })] })] }));
|
|
22
|
-
}
|
|
23
|
-
function BannerArt() {
|
|
24
|
-
const colorize = bannerUsesColor();
|
|
25
|
-
return (_jsxs(Box, { children: [_jsxs(Text, { bold: true, color: "cyan", children: ['>', ' '] }), _jsx(Box, { flexDirection: "column", children: COPADO_CONTEXT_HUB_ART.split('\n').map((line, row) => (_jsx(BannerLine, { colorize: colorize, line: line, row: row }, row))) })] }));
|
|
26
|
-
}
|
|
27
|
-
function BannerLine(props) {
|
|
28
|
-
if (!props.colorize) {
|
|
29
|
-
return _jsx(Text, { children: props.line });
|
|
30
|
-
}
|
|
31
|
-
return _jsx(Text, { color: BANNER_GRADIENT[props.row % BANNER_GRADIENT.length], children: props.line });
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=ai-session-tui-welcome.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ai-session-tui-welcome.js","sourceRoot":"","sources":["../../src/lib/ai-session-tui-welcome.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
export function wrapText(text, width) {
|
|
2
|
-
const columns = Math.max(1, width);
|
|
3
|
-
const rows = [];
|
|
4
|
-
for (const paragraph of text.split('\n')) {
|
|
5
|
-
if (paragraph.length === 0) {
|
|
6
|
-
rows.push('');
|
|
7
|
-
continue;
|
|
8
|
-
}
|
|
9
|
-
let rest = paragraph;
|
|
10
|
-
while (rest.length > columns) {
|
|
11
|
-
const window = rest.slice(0, columns);
|
|
12
|
-
const breakAt = window.lastIndexOf(' ');
|
|
13
|
-
const take = breakAt > 0 ? breakAt + 1 : columns;
|
|
14
|
-
rows.push(rest.slice(0, take));
|
|
15
|
-
rest = rest.slice(take);
|
|
16
|
-
}
|
|
17
|
-
rows.push(rest);
|
|
18
|
-
}
|
|
19
|
-
return rows;
|
|
20
|
-
}
|
|
21
|
-
export function wrapPrefixedText(prefix, text, width) {
|
|
22
|
-
return wrapText(`${prefix}${text}`, width);
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=ai-session-tui-wrap.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ai-session-tui-wrap.js","sourceRoot":"","sources":["../../src/lib/ai-session-tui-wrap.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,KAAa;IAClD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IAClC,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACb,SAAQ;QACV,CAAC;QAED,IAAI,IAAI,GAAG,SAAS,CAAA;QACpB,OAAO,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;YACrC,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YACvC,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;YAChD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;YAC9B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACzB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACjB,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,IAAY,EAAE,KAAa;IAC1E,OAAO,QAAQ,CAAC,GAAG,MAAM,GAAG,IAAI,EAAE,EAAE,KAAK,CAAC,CAAA;AAC5C,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { type AiChatSessionOptions, type AiChatSessionResult } from './ai-chat-session.js';
|
|
2
|
-
export type SessionAppProps = {
|
|
3
|
-
onFinished?: (result: AiChatSessionResult) => void;
|
|
4
|
-
options: AiChatSessionOptions;
|
|
5
|
-
};
|
|
6
|
-
export declare function SessionApp(props: SessionAppProps): JSX.Element;
|
|
7
|
-
export declare function runAiSessionTui(options: AiChatSessionOptions): Promise<AiChatSessionResult>;
|