@copado/agentia-cli 0.108.0-alpha.0 → 0.110.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.
Files changed (90) hide show
  1. package/README.md +263 -188
  2. package/dist/commands/ai/session/list.d.ts +14 -0
  3. package/dist/commands/ai/session/list.js +46 -0
  4. package/dist/commands/ai/session/list.js.map +1 -0
  5. package/dist/commands/ai/session/start.d.ts +17 -0
  6. package/dist/commands/ai/session/start.js +60 -0
  7. package/dist/commands/ai/session/start.js.map +1 -0
  8. package/dist/commands/cicd/notification/configure.d.ts +1 -1
  9. package/dist/commands/cicd/work/deployment-step/create.d.ts +1 -1
  10. package/dist/commands/cicd/work/status.d.ts +5 -1
  11. package/dist/commands/cicd/work/status.js +41 -6
  12. package/dist/commands/cicd/work/status.js.map +1 -1
  13. package/dist/commands/testing/build/run.d.ts +1 -1
  14. package/dist/commands/testing/job/update.d.ts +1 -1
  15. package/dist/commands/testing/run.d.ts +1 -1
  16. package/dist/commands/testing/test/run.d.ts +1 -1
  17. package/dist/lib/ai-chat-session.d.ts +3 -0
  18. package/dist/lib/ai-chat-session.js +180 -64
  19. package/dist/lib/ai-chat-session.js.map +1 -1
  20. package/dist/lib/ai-gateway.d.ts +8 -1
  21. package/dist/lib/ai-gateway.js +34 -2
  22. package/dist/lib/ai-gateway.js.map +1 -1
  23. package/dist/lib/ai-session-banner.d.ts +5 -0
  24. package/dist/lib/ai-session-banner.js +20 -0
  25. package/dist/lib/ai-session-banner.js.map +1 -0
  26. package/dist/lib/ai-session-tui-blocks.d.ts +9 -0
  27. package/dist/lib/ai-session-tui-blocks.js +36 -0
  28. package/dist/lib/ai-session-tui-blocks.js.map +1 -0
  29. package/dist/lib/ai-session-tui-clipboard.d.ts +22 -0
  30. package/dist/lib/ai-session-tui-clipboard.js +78 -0
  31. package/dist/lib/ai-session-tui-clipboard.js.map +1 -0
  32. package/dist/lib/ai-session-tui-composer.d.ts +35 -0
  33. package/dist/lib/ai-session-tui-composer.js +96 -0
  34. package/dist/lib/ai-session-tui-composer.js.map +1 -0
  35. package/dist/lib/ai-session-tui-highlight.d.ts +11 -0
  36. package/dist/lib/ai-session-tui-highlight.js +310 -0
  37. package/dist/lib/ai-session-tui-highlight.js.map +1 -0
  38. package/dist/lib/ai-session-tui-keys.d.ts +42 -0
  39. package/dist/lib/ai-session-tui-keys.js +159 -0
  40. package/dist/lib/ai-session-tui-keys.js.map +1 -0
  41. package/dist/lib/ai-session-tui-mermaid-image.d.ts +43 -0
  42. package/dist/lib/ai-session-tui-mermaid-image.js +444 -0
  43. package/dist/lib/ai-session-tui-mermaid-image.js.map +1 -0
  44. package/dist/lib/ai-session-tui-mermaid-paint.d.ts +3 -0
  45. package/dist/lib/ai-session-tui-mermaid-paint.js +182 -0
  46. package/dist/lib/ai-session-tui-mermaid-paint.js.map +1 -0
  47. package/dist/lib/ai-session-tui-mermaid.d.ts +19 -0
  48. package/dist/lib/ai-session-tui-mermaid.js +158 -0
  49. package/dist/lib/ai-session-tui-mermaid.js.map +1 -0
  50. package/dist/lib/ai-session-tui-message.d.ts +9 -0
  51. package/dist/lib/ai-session-tui-message.js +24 -0
  52. package/dist/lib/ai-session-tui-message.js.map +1 -0
  53. package/dist/lib/ai-session-tui-scroll.d.ts +32 -0
  54. package/dist/lib/ai-session-tui-scroll.js +148 -0
  55. package/dist/lib/ai-session-tui-scroll.js.map +1 -0
  56. package/dist/lib/ai-session-tui-slash.d.ts +14 -0
  57. package/dist/lib/ai-session-tui-slash.js +53 -0
  58. package/dist/lib/ai-session-tui-slash.js.map +1 -0
  59. package/dist/lib/ai-session-tui-welcome.d.ts +12 -0
  60. package/dist/lib/ai-session-tui-welcome.js +33 -0
  61. package/dist/lib/ai-session-tui-welcome.js.map +1 -0
  62. package/dist/lib/ai-session-tui-wrap.d.ts +2 -0
  63. package/dist/lib/ai-session-tui-wrap.js +24 -0
  64. package/dist/lib/ai-session-tui-wrap.js.map +1 -0
  65. package/dist/lib/ai-session-tui.d.ts +7 -0
  66. package/dist/lib/ai-session-tui.js +859 -0
  67. package/dist/lib/ai-session-tui.js.map +1 -0
  68. package/dist/lib/ai-sessions.d.ts +17 -0
  69. package/dist/lib/ai-sessions.js +142 -0
  70. package/dist/lib/ai-sessions.js.map +1 -0
  71. package/dist/lib/ai-types.d.ts +19 -0
  72. package/dist/lib/ai-types.js +49 -1
  73. package/dist/lib/ai-types.js.map +1 -1
  74. package/dist/lib/format.d.ts +2 -0
  75. package/dist/lib/format.js +5 -2
  76. package/dist/lib/format.js.map +1 -1
  77. package/dist/lib/mcp/tools.d.ts +5 -2
  78. package/dist/lib/mcp/tools.js +20 -3
  79. package/dist/lib/mcp/tools.js.map +1 -1
  80. package/dist/lib/testing-flags.d.ts +1 -1
  81. package/dist/lib/work-branch-metadata.d.ts +11 -0
  82. package/dist/lib/work-branch-metadata.js +31 -0
  83. package/dist/lib/work-branch-metadata.js.map +1 -0
  84. package/dist/lib/work-types.d.ts +3 -0
  85. package/dist/lib/work-types.js +21 -0
  86. package/dist/lib/work-types.js.map +1 -1
  87. package/oclif.manifest.json +2418 -2260
  88. package/package.json +10 -1
  89. package/templates/skills/agentia-ai/SKILL.md +5 -5
  90. package/templates/skills/agentia-ai/references/ai-agents.md +18 -3
@@ -0,0 +1,310 @@
1
+ import { wrapText } from './ai-session-tui-wrap.js';
2
+ const C_LIKE = new Set([
3
+ 'apex',
4
+ 'c',
5
+ 'cpp',
6
+ 'csharp',
7
+ 'go',
8
+ 'java',
9
+ 'javascript',
10
+ 'js',
11
+ 'jsonc',
12
+ 'jsx',
13
+ 'kotlin',
14
+ 'swift',
15
+ 'ts',
16
+ 'tsx',
17
+ 'typescript',
18
+ ]);
19
+ const PYTHON = new Set(['py', 'python']);
20
+ const XML = new Set(['html', 'xhtml', 'xml']);
21
+ const SOQL = new Set(['soql', 'sosl', 'sql']);
22
+ const SHELL = new Set(['bash', 'sh', 'shell', 'zsh']);
23
+ const C_KEYWORDS = new Set([
24
+ 'abstract',
25
+ 'async',
26
+ 'await',
27
+ 'break',
28
+ 'case',
29
+ 'catch',
30
+ 'class',
31
+ 'const',
32
+ 'continue',
33
+ 'default',
34
+ 'else',
35
+ 'enum',
36
+ 'export',
37
+ 'extends',
38
+ 'false',
39
+ 'final',
40
+ 'finally',
41
+ 'for',
42
+ 'from',
43
+ 'function',
44
+ 'global',
45
+ 'if',
46
+ 'implements',
47
+ 'import',
48
+ 'inherited',
49
+ 'interface',
50
+ 'let',
51
+ 'new',
52
+ 'null',
53
+ 'override',
54
+ 'private',
55
+ 'protected',
56
+ 'public',
57
+ 'return',
58
+ 'sharing',
59
+ 'static',
60
+ 'super',
61
+ 'switch',
62
+ 'this',
63
+ 'throw',
64
+ 'true',
65
+ 'try',
66
+ 'typeof',
67
+ 'undefined',
68
+ 'var',
69
+ 'virtual',
70
+ 'void',
71
+ 'while',
72
+ 'with',
73
+ 'without',
74
+ 'yield',
75
+ ]);
76
+ const PYTHON_KEYWORDS = new Set([
77
+ 'and',
78
+ 'as',
79
+ 'assert',
80
+ 'async',
81
+ 'await',
82
+ 'break',
83
+ 'class',
84
+ 'continue',
85
+ 'def',
86
+ 'elif',
87
+ 'else',
88
+ 'except',
89
+ 'false',
90
+ 'finally',
91
+ 'for',
92
+ 'from',
93
+ 'global',
94
+ 'if',
95
+ 'import',
96
+ 'in',
97
+ 'is',
98
+ 'lambda',
99
+ 'none',
100
+ 'not',
101
+ 'or',
102
+ 'pass',
103
+ 'raise',
104
+ 'return',
105
+ 'self',
106
+ 'true',
107
+ 'try',
108
+ 'while',
109
+ 'with',
110
+ 'yield',
111
+ ]);
112
+ const SOQL_KEYWORDS = new Set([
113
+ 'and',
114
+ 'asc',
115
+ 'by',
116
+ 'desc',
117
+ 'from',
118
+ 'group',
119
+ 'having',
120
+ 'insert',
121
+ 'limit',
122
+ 'not',
123
+ 'null',
124
+ 'offset',
125
+ 'or',
126
+ 'order',
127
+ 'select',
128
+ 'set',
129
+ 'update',
130
+ 'upsert',
131
+ 'where',
132
+ 'with',
133
+ ]);
134
+ const SHELL_KEYWORDS = new Set(['case', 'do', 'done', 'elif', 'else', 'esac', 'export', 'fi', 'for', 'if', 'in', 'then', 'while']);
135
+ function languageKind(language) {
136
+ const normalized = language.trim().toLowerCase();
137
+ if (normalized === 'json')
138
+ return 'json';
139
+ if (C_LIKE.has(normalized))
140
+ return 'c-like';
141
+ if (PYTHON.has(normalized))
142
+ return 'python';
143
+ if (XML.has(normalized))
144
+ return 'xml';
145
+ if (SOQL.has(normalized))
146
+ return 'soql';
147
+ if (SHELL.has(normalized))
148
+ return 'shell';
149
+ return 'plain';
150
+ }
151
+ function push(spans, text, color, dim) {
152
+ if (text.length === 0)
153
+ return;
154
+ const last = spans.at(-1);
155
+ if (last !== undefined && last.color === color && last.dim === dim) {
156
+ last.text += text;
157
+ return;
158
+ }
159
+ spans.push({ ...(color === undefined ? {} : { color }), ...(dim === true ? { dim: true } : {}), text });
160
+ }
161
+ function readQuoted(line, index, quote, escaped) {
162
+ let cursor = index + 1;
163
+ while (cursor < line.length) {
164
+ const char = line[cursor];
165
+ if (escaped && char === '\\' && cursor + 1 < line.length) {
166
+ cursor += 2;
167
+ continue;
168
+ }
169
+ if (char === quote)
170
+ return { end: cursor + 1, text: line.slice(index, cursor + 1) };
171
+ cursor += 1;
172
+ }
173
+ return { end: line.length, text: line.slice(index) };
174
+ }
175
+ function highlightCLike(line, keywords, lineComment) {
176
+ const spans = [];
177
+ let index = 0;
178
+ while (index < line.length) {
179
+ const rest = line.slice(index);
180
+ if (lineComment !== undefined && rest.startsWith(lineComment)) {
181
+ push(spans, rest, 'gray', true);
182
+ break;
183
+ }
184
+ if (rest.startsWith('//')) {
185
+ push(spans, rest, 'gray', true);
186
+ break;
187
+ }
188
+ if (rest.startsWith('/*')) {
189
+ const end = line.indexOf('*/', index + 2);
190
+ const take = end === -1 ? line.length : end + 2;
191
+ push(spans, line.slice(index, take), 'gray', true);
192
+ index = take;
193
+ continue;
194
+ }
195
+ const quote = rest[0];
196
+ if (quote === '"' || quote === "'" || quote === '`') {
197
+ const read = readQuoted(line, index, quote, true);
198
+ push(spans, read.text, 'yellow');
199
+ index = read.end;
200
+ continue;
201
+ }
202
+ const number = /^(?:\d+\.\d+|\d+)\b/u.exec(rest);
203
+ if (number !== null) {
204
+ push(spans, number[0], 'cyan');
205
+ index += number[0].length;
206
+ continue;
207
+ }
208
+ const ident = /^(?:[@$]?[A-Za-z_][\w.]*|@[\w.]+)/u.exec(rest);
209
+ if (ident !== null) {
210
+ const word = ident[0];
211
+ const lower = word.toLowerCase();
212
+ const nextNonSpace = rest.slice(word.length).match(/^\s*/u)?.[0].length ?? 0;
213
+ const after = rest[word.length + nextNonSpace];
214
+ if (keywords.has(lower))
215
+ push(spans, word, 'magenta');
216
+ else if (after === '(')
217
+ push(spans, word, 'green');
218
+ else if (/^[A-Z]/u.test(word))
219
+ push(spans, word, 'blue');
220
+ else
221
+ push(spans, word);
222
+ index += word.length;
223
+ continue;
224
+ }
225
+ push(spans, line[index] ?? '');
226
+ index += 1;
227
+ }
228
+ return spans;
229
+ }
230
+ function highlightXml(line) {
231
+ const spans = [];
232
+ let index = 0;
233
+ while (index < line.length) {
234
+ if (line.startsWith('<!--', index)) {
235
+ const end = line.indexOf('-->', index + 4);
236
+ const take = end === -1 ? line.length : end + 3;
237
+ push(spans, line.slice(index, take), 'gray', true);
238
+ index = take;
239
+ continue;
240
+ }
241
+ if (line[index] === '<') {
242
+ const end = line.indexOf('>', index);
243
+ const take = end === -1 ? line.length : end + 1;
244
+ push(spans, line.slice(index, take), 'cyan');
245
+ index = take;
246
+ continue;
247
+ }
248
+ const next = line.indexOf('<', index);
249
+ const take = next === -1 ? line.length : next;
250
+ push(spans, line.slice(index, take));
251
+ index = take;
252
+ }
253
+ return spans;
254
+ }
255
+ function highlightJson(line) {
256
+ return highlightCLike(line, new Set(['false', 'null', 'true']));
257
+ }
258
+ function highlightPython(line) {
259
+ return highlightCLike(line, PYTHON_KEYWORDS, '#');
260
+ }
261
+ export function highlightCodeLine(line, language) {
262
+ const kind = languageKind(language);
263
+ if (kind === 'plain')
264
+ return line.length === 0 ? [] : [{ text: line }];
265
+ if (kind === 'xml')
266
+ return highlightXml(line);
267
+ if (kind === 'json')
268
+ return highlightJson(line);
269
+ if (kind === 'python')
270
+ return highlightPython(line);
271
+ if (kind === 'soql')
272
+ return highlightCLike(line, SOQL_KEYWORDS);
273
+ if (kind === 'shell')
274
+ return highlightCLike(line, SHELL_KEYWORDS, '#');
275
+ return highlightCLike(line, C_KEYWORDS);
276
+ }
277
+ export function spansText(spans) {
278
+ return spans.map((span) => span.text).join('');
279
+ }
280
+ export function sliceSpans(spans, start, end) {
281
+ const sliced = [];
282
+ let offset = 0;
283
+ for (const span of spans) {
284
+ const spanEnd = offset + span.text.length;
285
+ if (spanEnd <= start) {
286
+ offset = spanEnd;
287
+ continue;
288
+ }
289
+ if (offset >= end)
290
+ break;
291
+ const from = Math.max(0, start - offset);
292
+ const to = Math.min(span.text.length, end - offset);
293
+ push(sliced, span.text.slice(from, to), span.color, span.dim);
294
+ offset = spanEnd;
295
+ }
296
+ return sliced;
297
+ }
298
+ export function wrapSpans(spans, width) {
299
+ const text = spansText(spans);
300
+ if (text.length === 0)
301
+ return [spans];
302
+ const lines = wrapText(text, width);
303
+ let offset = 0;
304
+ return lines.map((line) => {
305
+ const slice = sliceSpans(spans, offset, offset + line.length);
306
+ offset += line.length;
307
+ return slice.length === 0 ? [{ text: line }] : slice;
308
+ });
309
+ }
310
+ //# sourceMappingURL=ai-session-tui-highlight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-session-tui-highlight.js","sourceRoot":"","sources":["../../src/lib/ai-session-tui-highlight.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ export type SessionKey = {
2
+ type: 'backspace';
3
+ } | {
4
+ type: 'delete';
5
+ } | {
6
+ type: 'down';
7
+ } | {
8
+ type: 'end';
9
+ } | {
10
+ type: 'enter';
11
+ } | {
12
+ type: 'escape';
13
+ } | {
14
+ type: 'home';
15
+ } | {
16
+ type: 'left';
17
+ } | {
18
+ type: 'page-down';
19
+ } | {
20
+ type: 'page-up';
21
+ } | {
22
+ type: 'right';
23
+ } | {
24
+ type: 'tab';
25
+ } | {
26
+ type: 'text';
27
+ value: string;
28
+ } | {
29
+ type: 'up';
30
+ };
31
+ export declare function parseSessionInput(input: string): {
32
+ keys: SessionKey[];
33
+ rest: string;
34
+ };
35
+ export declare class SessionInputAssembler {
36
+ private buffer;
37
+ flush(): SessionKey[];
38
+ push(chunk: string): {
39
+ keys: SessionKey[];
40
+ pending: boolean;
41
+ };
42
+ }
@@ -0,0 +1,159 @@
1
+ const ESC = '\u001B';
2
+ const PASTE_START = `${ESC}[200~`;
3
+ const PASTE_END = `${ESC}[201~`;
4
+ const KITTY_FUNCTION = {
5
+ 8: 'backspace',
6
+ 9: 'tab',
7
+ 13: 'enter',
8
+ 27: 'escape',
9
+ 127: 'backspace',
10
+ 57_349: 'delete',
11
+ 57_350: 'left',
12
+ 57_351: 'right',
13
+ 57_352: 'up',
14
+ 57_353: 'down',
15
+ 57_354: 'page-up',
16
+ 57_355: 'page-down',
17
+ 57_356: 'home',
18
+ 57_357: 'end',
19
+ };
20
+ export function parseSessionInput(input) {
21
+ const keys = [];
22
+ let i = 0;
23
+ while (i < input.length) {
24
+ if (input.startsWith(PASTE_START, i)) {
25
+ const end = input.indexOf(PASTE_END, i + PASTE_START.length);
26
+ if (end === -1)
27
+ return { keys, rest: input.slice(i) };
28
+ const inner = input.slice(i + PASTE_START.length, end);
29
+ if (inner.length > 0)
30
+ keys.push({ type: 'text', value: inner });
31
+ i = end + PASTE_END.length;
32
+ continue;
33
+ }
34
+ const ch = input[i] ?? '';
35
+ if (ch === ESC) {
36
+ const parsed = parseEscape(input, i);
37
+ if (parsed === undefined)
38
+ return { keys, rest: input.slice(i) };
39
+ if (parsed.key !== undefined)
40
+ keys.push(parsed.key);
41
+ i = parsed.next;
42
+ continue;
43
+ }
44
+ if (ch === '\r' || ch === '\n') {
45
+ keys.push({ type: 'enter' });
46
+ i += 1;
47
+ continue;
48
+ }
49
+ if (ch === '\t') {
50
+ keys.push({ type: 'tab' });
51
+ i += 1;
52
+ continue;
53
+ }
54
+ if (ch === '\u007F' || ch === '\b') {
55
+ keys.push({ type: 'backspace' });
56
+ i += 1;
57
+ continue;
58
+ }
59
+ if (ch < ' ') {
60
+ i += 1;
61
+ continue;
62
+ }
63
+ let end = i + 1;
64
+ while (end < input.length) {
65
+ const next = input[end] ?? '';
66
+ if (next === ESC || next < ' ')
67
+ break;
68
+ end += 1;
69
+ }
70
+ keys.push({ type: 'text', value: input.slice(i, end) });
71
+ i = end;
72
+ }
73
+ return { keys, rest: '' };
74
+ }
75
+ export class SessionInputAssembler {
76
+ buffer = '';
77
+ flush() {
78
+ if (this.buffer === ESC) {
79
+ this.buffer = '';
80
+ return [{ type: 'escape' }];
81
+ }
82
+ this.buffer = '';
83
+ return [];
84
+ }
85
+ push(chunk) {
86
+ const parsed = parseSessionInput(this.buffer + chunk);
87
+ this.buffer = parsed.rest;
88
+ return { keys: parsed.keys, pending: this.buffer.length > 0 };
89
+ }
90
+ }
91
+ function parseEscape(input, start) {
92
+ const second = input[start + 1];
93
+ if (second === undefined)
94
+ return undefined;
95
+ if (second === 'O') {
96
+ const letter = input[start + 2];
97
+ if (letter === undefined)
98
+ return undefined;
99
+ return { key: arrowOrHome(letter), next: start + 3 };
100
+ }
101
+ if (second !== '[') {
102
+ return { key: undefined, next: start + 2 };
103
+ }
104
+ let i = start + 2;
105
+ while (i < input.length) {
106
+ const code = input.codePointAt(i) ?? 0;
107
+ if (code >= 0x40 && code <= 0x7e) {
108
+ const params = input.slice(start + 2, i);
109
+ const final = input[i] ?? '';
110
+ return { key: mapCsi(params, final), next: i + 1 };
111
+ }
112
+ i += 1;
113
+ }
114
+ return undefined;
115
+ }
116
+ function mapCsi(params, final) {
117
+ if (final === 'A' || final === 'B' || final === 'C' || final === 'D' || final === 'H' || final === 'F') {
118
+ return arrowOrHome(final);
119
+ }
120
+ if (final === 'Z')
121
+ return { type: 'tab' };
122
+ const first = Number.parseInt(params.split(';')[0] ?? '', 10);
123
+ if (final === '~') {
124
+ if (first === 1 || first === 7)
125
+ return { type: 'home' };
126
+ if (first === 4 || first === 8)
127
+ return { type: 'end' };
128
+ if (first === 3)
129
+ return { type: 'delete' };
130
+ if (first === 5)
131
+ return { type: 'page-up' };
132
+ if (first === 6)
133
+ return { type: 'page-down' };
134
+ return undefined;
135
+ }
136
+ if (final === 'u' && Number.isInteger(first)) {
137
+ const name = KITTY_FUNCTION[first];
138
+ if (name === undefined)
139
+ return undefined;
140
+ return { type: name };
141
+ }
142
+ return undefined;
143
+ }
144
+ function arrowOrHome(letter) {
145
+ if (letter === 'A')
146
+ return { type: 'up' };
147
+ if (letter === 'B')
148
+ return { type: 'down' };
149
+ if (letter === 'C')
150
+ return { type: 'right' };
151
+ if (letter === 'D')
152
+ return { type: 'left' };
153
+ if (letter === 'H')
154
+ return { type: 'home' };
155
+ if (letter === 'F')
156
+ return { type: 'end' };
157
+ return undefined;
158
+ }
159
+ //# sourceMappingURL=ai-session-tui-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-session-tui-keys.js","sourceRoot":"","sources":["../../src/lib/ai-session-tui-keys.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /** Dark flowchart colors close to filled-node terminal renderers (Kitty/iTerm). */
2
+ export declare const MERMAID_IMAGE_THEME: {
3
+ readonly accent: "#6cb6ff";
4
+ readonly bg: "#0d1117";
5
+ readonly border: "#3d6d99";
6
+ readonly fg: "#e6edf3";
7
+ readonly font: "Helvetica";
8
+ readonly line: "#6cb6ff";
9
+ readonly muted: "#8b9cb3";
10
+ readonly surface: "#1b3a5f";
11
+ };
12
+ export type MermaidImageProtocol = 'kitty-placeholder' | 'none' | 'overlay-iterm' | 'overlay-kitty';
13
+ export type MermaidImageRecord = {
14
+ cols: number;
15
+ id: number;
16
+ png: Buffer;
17
+ pngHeight: number;
18
+ pngWidth: number;
19
+ rows: number;
20
+ svg: string;
21
+ };
22
+ export type MermaidImageSlot = {
23
+ cols: number;
24
+ id: number;
25
+ kind: 'overlay' | 'placeholder';
26
+ row: number;
27
+ rows: number;
28
+ };
29
+ export declare function inlineMermaidSvgCss(svg: string): string;
30
+ export declare function mermaidImageColor(id: number): string;
31
+ export declare function kittyPlaceholderRow(row: number, cols: number): string;
32
+ export declare function overlaySlotText(id: number, row: number, cols: number): string;
33
+ export declare function overlaySlotPattern(): RegExp;
34
+ export declare function detectMermaidImageProtocol(env?: NodeJS.ProcessEnv, io?: {
35
+ argv?: readonly string[];
36
+ isTTY?: boolean;
37
+ }): MermaidImageProtocol;
38
+ export declare function rasterizeMermaidPng(source: string, columns: number): MermaidImageRecord | undefined;
39
+ export declare function encodeKittyPlaceholderTransmit(record: MermaidImageRecord): string;
40
+ export declare function expandImageFrame(frame: string, protocol?: MermaidImageProtocol): string;
41
+ export declare function installStdoutImageBridge(stdout: NodeJS.WriteStream, protocol?: MermaidImageProtocol): () => void;
42
+ export declare function resetMermaidImageState(): void;
43
+ export declare function mermaidImageSlotKind(protocol: MermaidImageProtocol): MermaidImageSlot['kind'] | undefined;