@autonsh/cli 0.18.0 → 0.19.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 (120) hide show
  1. package/dist/chat.d.ts +1 -1
  2. package/dist/chat.js +166 -120
  3. package/dist/chat.js.map +1 -1
  4. package/dist/completion.d.ts +2 -0
  5. package/dist/completion.js +379 -0
  6. package/dist/completion.js.map +1 -0
  7. package/dist/config-validation.d.ts +10 -0
  8. package/dist/config-validation.js +101 -0
  9. package/dist/config-validation.js.map +1 -0
  10. package/dist/config.d.ts +9 -3
  11. package/dist/config.js +23 -11
  12. package/dist/config.js.map +1 -1
  13. package/dist/doctor.d.ts +18 -0
  14. package/dist/doctor.js +409 -0
  15. package/dist/doctor.js.map +1 -0
  16. package/dist/errors.d.ts +22 -0
  17. package/dist/errors.js +60 -0
  18. package/dist/errors.js.map +1 -0
  19. package/dist/index.js +62 -64
  20. package/dist/index.js.map +1 -1
  21. package/dist/input.d.ts +43 -0
  22. package/dist/input.js +288 -0
  23. package/dist/input.js.map +1 -0
  24. package/dist/llm/factory.d.ts +5 -0
  25. package/dist/llm/factory.js +54 -0
  26. package/dist/llm/factory.js.map +1 -0
  27. package/dist/llm/index.d.ts +9 -0
  28. package/dist/llm/index.js +11 -0
  29. package/dist/llm/index.js.map +1 -0
  30. package/dist/llm/provider.d.ts +27 -0
  31. package/dist/llm/provider.js +98 -0
  32. package/dist/llm/provider.js.map +1 -0
  33. package/dist/llm/providers/anthropic.d.ts +23 -0
  34. package/dist/llm/providers/anthropic.js +198 -0
  35. package/dist/llm/providers/anthropic.js.map +1 -0
  36. package/dist/llm/providers/google.d.ts +31 -0
  37. package/dist/llm/providers/google.js +190 -0
  38. package/dist/llm/providers/google.js.map +1 -0
  39. package/dist/llm/providers/ollama.d.ts +21 -0
  40. package/dist/llm/providers/ollama.js +157 -0
  41. package/dist/llm/providers/ollama.js.map +1 -0
  42. package/dist/llm/providers/openai-compatible.d.ts +22 -0
  43. package/dist/llm/providers/openai-compatible.js +175 -0
  44. package/dist/llm/providers/openai-compatible.js.map +1 -0
  45. package/dist/llm/providers/openai.d.ts +20 -0
  46. package/dist/llm/providers/openai.js +167 -0
  47. package/dist/llm/providers/openai.js.map +1 -0
  48. package/dist/llm/registry.d.ts +19 -0
  49. package/dist/llm/registry.js +421 -0
  50. package/dist/llm/registry.js.map +1 -0
  51. package/dist/llm/types.d.ts +174 -0
  52. package/dist/llm/types.js +3 -0
  53. package/dist/llm/types.js.map +1 -0
  54. package/dist/login.d.ts +1 -1
  55. package/dist/login.js +14 -14
  56. package/dist/login.js.map +1 -1
  57. package/dist/mcp/client.d.ts +36 -0
  58. package/dist/mcp/client.js +199 -0
  59. package/dist/mcp/client.js.map +1 -0
  60. package/dist/mcp/config.d.ts +10 -0
  61. package/dist/mcp/config.js +43 -0
  62. package/dist/mcp/config.js.map +1 -0
  63. package/dist/mcp/index.d.ts +4 -0
  64. package/dist/mcp/index.js +6 -0
  65. package/dist/mcp/index.js.map +1 -0
  66. package/dist/mcp/types.d.ts +104 -0
  67. package/dist/mcp/types.js +3 -0
  68. package/dist/mcp/types.js.map +1 -0
  69. package/dist/model.d.ts +3 -14
  70. package/dist/model.js +131 -91
  71. package/dist/model.js.map +1 -1
  72. package/dist/ollama.d.ts +10 -0
  73. package/dist/ollama.js +11 -0
  74. package/dist/ollama.js.map +1 -0
  75. package/dist/repomap.d.ts +37 -0
  76. package/dist/repomap.js +431 -0
  77. package/dist/repomap.js.map +1 -0
  78. package/dist/skills/index.d.ts +3 -0
  79. package/dist/skills/index.js +5 -0
  80. package/dist/skills/index.js.map +1 -0
  81. package/dist/skills/registry.d.ts +16 -0
  82. package/dist/skills/registry.js +128 -0
  83. package/dist/skills/registry.js.map +1 -0
  84. package/dist/skills/types.d.ts +48 -0
  85. package/dist/skills/types.js +3 -0
  86. package/dist/skills/types.js.map +1 -0
  87. package/dist/statusline.d.ts +21 -0
  88. package/dist/statusline.js +68 -0
  89. package/dist/statusline.js.map +1 -0
  90. package/dist/streaming.d.ts +25 -0
  91. package/dist/streaming.js +91 -0
  92. package/dist/streaming.js.map +1 -0
  93. package/dist/theme.d.ts +52 -0
  94. package/dist/theme.js +92 -0
  95. package/dist/theme.js.map +1 -0
  96. package/dist/tools/builtin.d.ts +11 -0
  97. package/dist/tools/builtin.js +491 -0
  98. package/dist/tools/builtin.js.map +1 -0
  99. package/dist/tools/index.d.ts +3 -0
  100. package/dist/tools/index.js +5 -0
  101. package/dist/tools/index.js.map +1 -0
  102. package/dist/tools/types.d.ts +186 -0
  103. package/dist/tools/types.js +29 -0
  104. package/dist/tools/types.js.map +1 -0
  105. package/dist/ui.js +34 -30
  106. package/dist/ui.js.map +1 -1
  107. package/dist/verbose.d.ts +20 -0
  108. package/dist/verbose.js +75 -0
  109. package/dist/verbose.js.map +1 -0
  110. package/package.json +11 -2
  111. package/templates/api-json/task.yaml +0 -2
  112. package/templates/coding/task.yaml +1 -1
  113. package/templates/cron-digester/task.yaml +0 -2
  114. package/templates/harness/task.yaml +0 -11
  115. package/templates/multi-agent/agent.ts +7 -8
  116. package/templates/multi-agent/task.yaml +1 -3
  117. package/templates/research/task.yaml +0 -28
  118. package/templates/support/task.yaml +0 -2
  119. package/templates/webhook-echo/task.yaml +0 -2
  120. package/templates/with-approval/task.yaml +0 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/skills/types.ts"],"names":[],"mappings":"AAAA,oFAAoF"}
@@ -0,0 +1,21 @@
1
+ export type StatusSegment = {
2
+ content: string;
3
+ color?: "red" | "green" | "blue" | "yellow" | "cyan" | "magenta" | "white" | "gray";
4
+ flex?: boolean;
5
+ };
6
+ export type StatusLineOptions = {
7
+ segments?: StatusSegment[];
8
+ separator?: string;
9
+ padding?: number;
10
+ };
11
+ export declare class StatusLine {
12
+ private segments;
13
+ private separator;
14
+ private padding;
15
+ constructor(options?: StatusLineOptions);
16
+ setSegments(segments: StatusSegment[]): void;
17
+ updateSegment(index: number, segment: StatusSegment): void;
18
+ render(): void;
19
+ private getColorFn;
20
+ }
21
+ export declare function buildDefaultStatusLine(model?: string, tokensIn?: number, tokensOut?: number, mode?: string, branch?: string): StatusSegment[];
@@ -0,0 +1,68 @@
1
+ // statusline.ts — Status line com segmentos, git branch, tokens formatados.
2
+ import { C, SYM, fmtTokens, sep } from "./theme.js";
3
+ export class StatusLine {
4
+ segments;
5
+ separator;
6
+ padding;
7
+ constructor(options = {}) {
8
+ this.segments = options.segments ?? [];
9
+ this.separator = options.separator ?? ` ${C.dim(SYM.pipe)} `;
10
+ this.padding = options.padding ?? 1;
11
+ }
12
+ setSegments(segments) {
13
+ this.segments = segments;
14
+ this.render();
15
+ }
16
+ updateSegment(index, segment) {
17
+ if (index < this.segments.length) {
18
+ this.segments[index] = segment;
19
+ this.render();
20
+ }
21
+ }
22
+ render() {
23
+ process.stdout.write("\r\x1B[K");
24
+ process.stdout.write(sep(40) + "\n");
25
+ const parts = [];
26
+ for (const seg of this.segments) {
27
+ const colorFn = this.getColorFn(seg.color);
28
+ parts.push(colorFn(seg.content));
29
+ }
30
+ const line = parts.join(this.separator);
31
+ const padded = " ".repeat(this.padding) + line;
32
+ process.stdout.write(padded + "\n");
33
+ }
34
+ getColorFn(color) {
35
+ switch (color) {
36
+ case "red": return C.blood;
37
+ case "green": return C.green;
38
+ case "blue": return C.cyan;
39
+ case "yellow": return C.yellow;
40
+ case "cyan": return C.gray;
41
+ case "magenta": return C.magenta;
42
+ case "white": return C.white;
43
+ case "gray": return C.dim;
44
+ default: return C.dim;
45
+ }
46
+ }
47
+ }
48
+ // --- Default status line builder ---
49
+ export function buildDefaultStatusLine(model, tokensIn, tokensOut, mode, branch) {
50
+ const segments = [];
51
+ if (model) {
52
+ segments.push({ content: model, color: "red" });
53
+ }
54
+ if (tokensIn !== undefined && tokensOut !== undefined) {
55
+ segments.push({
56
+ content: `${fmtTokens(tokensIn)}→${fmtTokens(tokensOut)} tok`,
57
+ color: "gray",
58
+ });
59
+ }
60
+ if (branch) {
61
+ segments.push({ content: branch, color: "gray" });
62
+ }
63
+ if (mode) {
64
+ segments.push({ content: mode, color: "cyan" });
65
+ }
66
+ return segments;
67
+ }
68
+ //# sourceMappingURL=statusline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statusline.js","sourceRoot":"","sources":["../src/statusline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export type StreamEvent = {
2
+ type: "token" | "done" | "error" | "tool";
3
+ content?: string;
4
+ tokensIn?: number;
5
+ tokensOut?: number;
6
+ error?: string;
7
+ };
8
+ export declare class StreamingDisplay {
9
+ private buffer;
10
+ private rendered;
11
+ private spinnerFrame;
12
+ private spinnerInterval;
13
+ private isStreaming;
14
+ start(): void;
15
+ handleEvent(event: StreamEvent): void;
16
+ private startSpinner;
17
+ private stopSpinner;
18
+ private renderIncremental;
19
+ private renderFinal;
20
+ private renderError;
21
+ private renderTool;
22
+ stop(): void;
23
+ getBuffer(): string;
24
+ clear(): void;
25
+ }
@@ -0,0 +1,91 @@
1
+ // streaming.ts — Streaming output display com spinner blood red e tool visualization.
2
+ import { C, SYM, fmtTokens } from "./theme.js";
3
+ export class StreamingDisplay {
4
+ buffer = "";
5
+ rendered = 0;
6
+ spinnerFrame = 0;
7
+ spinnerInterval = null;
8
+ isStreaming = false;
9
+ start() {
10
+ this.isStreaming = true;
11
+ this.buffer = "";
12
+ this.rendered = 0;
13
+ this.startSpinner();
14
+ }
15
+ handleEvent(event) {
16
+ switch (event.type) {
17
+ case "token":
18
+ if (event.content) {
19
+ this.buffer += event.content;
20
+ this.renderIncremental(event.content);
21
+ }
22
+ break;
23
+ case "done":
24
+ this.stop();
25
+ this.renderFinal(event.tokensIn, event.tokensOut);
26
+ break;
27
+ case "error":
28
+ this.stop();
29
+ this.renderError(event.error ?? "erro desconhecido");
30
+ break;
31
+ case "tool":
32
+ this.renderTool(event.content ?? "");
33
+ break;
34
+ }
35
+ }
36
+ startSpinner() {
37
+ const frames = ["⣾", "⣽", "⣻", "⢿", "⡿", "⣟", "⣯", "⣷"];
38
+ this.spinnerInterval = setInterval(() => {
39
+ if (!this.isStreaming)
40
+ return;
41
+ const frame = frames[this.spinnerFrame % frames.length];
42
+ process.stdout.write(`\r${C.blood(frame)} ${C.dim("gerando...")}`);
43
+ this.spinnerFrame++;
44
+ }, 100);
45
+ }
46
+ stopSpinner() {
47
+ if (this.spinnerInterval) {
48
+ clearInterval(this.spinnerInterval);
49
+ this.spinnerInterval = null;
50
+ }
51
+ }
52
+ renderIncremental(token) {
53
+ process.stdout.write("\r\x1B[K");
54
+ process.stdout.write(token);
55
+ }
56
+ renderFinal(tokensIn, tokensOut) {
57
+ this.stopSpinner();
58
+ process.stdout.write("\r\x1B[K");
59
+ if (tokensOut !== undefined) {
60
+ const inStr = tokensIn !== undefined ? fmtTokens(tokensIn) : "?";
61
+ process.stdout.write(C.dim(` ${inStr}→${fmtTokens(tokensOut)} tok\n`));
62
+ }
63
+ if (this.rendered < this.buffer.length) {
64
+ const remaining = this.buffer.slice(this.rendered);
65
+ process.stdout.write(remaining);
66
+ this.rendered = this.buffer.length;
67
+ }
68
+ process.stdout.write("\n");
69
+ }
70
+ renderError(error) {
71
+ this.stopSpinner();
72
+ process.stdout.write("\r\x1B[K");
73
+ process.stdout.write(`${C.blood(`${SYM.fail} erro: ${error}`)}\n`);
74
+ }
75
+ renderTool(content) {
76
+ this.stopSpinner();
77
+ process.stdout.write(`${C.gray(` ${SYM.gear} ${content}`)}\n`);
78
+ }
79
+ stop() {
80
+ this.isStreaming = false;
81
+ this.stopSpinner();
82
+ }
83
+ getBuffer() {
84
+ return this.buffer;
85
+ }
86
+ clear() {
87
+ this.buffer = "";
88
+ this.rendered = 0;
89
+ }
90
+ }
91
+ //# sourceMappingURL=streaming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming.js","sourceRoot":"","sources":["../src/streaming.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ export declare const C: {
2
+ readonly blood: import("picocolors/types.js").Formatter;
3
+ readonly crimson: (s: string) => string;
4
+ readonly dark: (s: string) => string;
5
+ readonly black: import("picocolors/types.js").Formatter;
6
+ readonly white: import("picocolors/types.js").Formatter;
7
+ readonly gray: import("picocolors/types.js").Formatter;
8
+ readonly dim: import("picocolors/types.js").Formatter;
9
+ readonly bold: import("picocolors/types.js").Formatter;
10
+ readonly green: import("picocolors/types.js").Formatter;
11
+ readonly yellow: import("picocolors/types.js").Formatter;
12
+ readonly cyan: import("picocolors/types.js").Formatter;
13
+ readonly magenta: import("picocolors/types.js").Formatter;
14
+ readonly inverse: import("picocolors/types.js").Formatter;
15
+ };
16
+ export declare const SYM: {
17
+ readonly ok: "✔";
18
+ readonly fail: "✖";
19
+ readonly info: "ℹ";
20
+ readonly warn: "⚠";
21
+ readonly bullet: "·";
22
+ readonly pointer: "❯";
23
+ readonly line: "─";
24
+ readonly doubleLine: "═";
25
+ readonly dot: "●";
26
+ readonly hollowDot: "○";
27
+ readonly diamond: "◆";
28
+ readonly gear: "⚙";
29
+ readonly folder: "📁";
30
+ readonly search: "🔍";
31
+ readonly check: "✓";
32
+ readonly arrow: "→";
33
+ readonly pipe: "│";
34
+ readonly cornerTL: "╭";
35
+ readonly cornerTR: "╮";
36
+ readonly cornerBL: "╰";
37
+ readonly cornerBR: "╯";
38
+ };
39
+ export declare function logoGradient(lines: string[]): string;
40
+ export declare const BOX: {
41
+ borderStyle: "round";
42
+ borderColor: "red";
43
+ padding: number;
44
+ margin: {
45
+ readonly top: 1;
46
+ readonly bottom: 1;
47
+ };
48
+ };
49
+ export declare function fmtTokens(n: number): string;
50
+ export declare function timestamp(): string;
51
+ export declare function sep(width?: number): string;
52
+ export declare function gitBranch(): string | undefined;
package/dist/theme.js ADDED
@@ -0,0 +1,92 @@
1
+ // theme.ts — Cores, símbolos e constantes visuais do auton CLI.
2
+ // Blood red / black / white / gray. Zero dependências extras.
3
+ import pc from "picocolors";
4
+ // --- Paleta ---
5
+ export const C = {
6
+ blood: pc.red,
7
+ crimson: (s) => pc.bold(pc.red(s)),
8
+ dark: (s) => pc.dim(pc.red(s)),
9
+ black: pc.black,
10
+ white: pc.white,
11
+ gray: pc.gray,
12
+ dim: pc.dim,
13
+ bold: pc.bold,
14
+ green: pc.green,
15
+ yellow: pc.yellow,
16
+ cyan: pc.cyan,
17
+ magenta: pc.magenta,
18
+ inverse: pc.inverse,
19
+ };
20
+ // --- Símbolos Unicode ---
21
+ export const SYM = {
22
+ ok: "✔",
23
+ fail: "✖",
24
+ info: "ℹ",
25
+ warn: "⚠",
26
+ bullet: "·",
27
+ pointer: "❯",
28
+ line: "─",
29
+ doubleLine: "═",
30
+ dot: "●",
31
+ hollowDot: "○",
32
+ diamond: "◆",
33
+ gear: "⚙",
34
+ folder: "📁",
35
+ search: "🔍",
36
+ check: "✓",
37
+ arrow: "→",
38
+ pipe: "│",
39
+ cornerTL: "╭",
40
+ cornerTR: "╮",
41
+ cornerBL: "╰",
42
+ cornerBR: "╯",
43
+ };
44
+ // --- Gradient logo (3 linhas, blood → dark) ---
45
+ export function logoGradient(lines) {
46
+ const [l1, l2, l3] = lines;
47
+ return [
48
+ C.crimson(l1 ?? ""),
49
+ C.blood(l2 ?? ""),
50
+ C.dark(l3 ?? ""),
51
+ ].join("\n");
52
+ }
53
+ // --- Boxen config ---
54
+ export const BOX = {
55
+ borderStyle: "round",
56
+ borderColor: "red",
57
+ padding: 1,
58
+ margin: { top: 1, bottom: 1 },
59
+ };
60
+ // --- Token count format (1234 → 1.2k) ---
61
+ export function fmtTokens(n) {
62
+ if (n >= 1000)
63
+ return (n / 1000).toFixed(1).replace(/\.0$/, "") + "k";
64
+ return String(n);
65
+ }
66
+ // --- Timestamp HH:MM ---
67
+ export function timestamp() {
68
+ const d = new Date();
69
+ const h = String(d.getHours()).padStart(2, "0");
70
+ const m = String(d.getMinutes()).padStart(2, "0");
71
+ return C.dim(`${h}:${m}`);
72
+ }
73
+ // --- Separator line ---
74
+ export function sep(width = 40) {
75
+ return C.dim(SYM.line.repeat(width));
76
+ }
77
+ // --- Git branch (best-effort, sync) ---
78
+ export function gitBranch() {
79
+ try {
80
+ const { execSync } = require("node:child_process");
81
+ const out = execSync("git rev-parse --abbrev-ref HEAD", {
82
+ encoding: "utf8",
83
+ timeout: 500,
84
+ stdio: ["pipe", "pipe", "pipe"],
85
+ }).trim();
86
+ return out || undefined;
87
+ }
88
+ catch {
89
+ return undefined;
90
+ }
91
+ }
92
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { type Tool } from "./types.js";
2
+ export declare const readTool: Tool<any, any>;
3
+ export declare const writeTool: Tool<any, any>;
4
+ export declare const editTool: Tool<any, any>;
5
+ export declare const listTool: Tool<any, any>;
6
+ export declare const globTool: Tool<any, any>;
7
+ export declare const grepTool: Tool<any, any>;
8
+ export declare const bashTool: Tool<any, any>;
9
+ export declare const taskTool: Tool<any, any>;
10
+ export declare const BUILTIN_TOOLS: Tool[];
11
+ export declare function getBuiltinTools(): Tool[];