@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,186 @@
1
+ export interface ToolSchema<T> {
2
+ parse(input: unknown): T | undefined;
3
+ serialize(output: T): unknown;
4
+ }
5
+ export interface ToolExecuteContext {
6
+ id: string;
7
+ name: string;
8
+ }
9
+ export type ToolExecute<Params, Output> = (params: Params, context?: ToolExecuteContext) => Promise<ToolResult<Output>>;
10
+ export interface ToolResult<Output> {
11
+ data: Output;
12
+ newMessages?: unknown[];
13
+ contextModifier?: (context: ToolUseContext) => ToolUseContext;
14
+ mcpMeta?: {
15
+ _meta?: Record<string, unknown>;
16
+ structuredContent?: Record<string, unknown>;
17
+ };
18
+ }
19
+ export interface ToolUseContext {
20
+ abortController: AbortController;
21
+ getAppState(): unknown;
22
+ setAppState(f: (prev: unknown) => unknown): void;
23
+ options: {
24
+ commands: unknown[];
25
+ debug: boolean;
26
+ mainLoopModel: string;
27
+ tools: Tool[];
28
+ verbose: boolean;
29
+ mcpClients: unknown[];
30
+ isNonInteractiveSession: boolean;
31
+ maxBudgetUsd?: number;
32
+ customSystemPrompt?: string;
33
+ appendSystemPrompt?: string;
34
+ };
35
+ }
36
+ export interface Tool<Params = unknown, Output = unknown, ProgressData = unknown> {
37
+ name: string;
38
+ aliases?: string[];
39
+ searchHint?: string;
40
+ description: string;
41
+ inputSchema: ToolSchema<Params>;
42
+ outputSchema?: ToolSchema<Output>;
43
+ execute?: ToolExecute<Params, Output>;
44
+ isEnabled(): boolean;
45
+ isConcurrencySafe(params: Params): boolean;
46
+ isReadOnly(params: Params): boolean;
47
+ isDestructive?(params: Params): boolean;
48
+ interruptBehavior?(): "cancel" | "block";
49
+ isSearchOrReadCommand?(params: Params): {
50
+ isSearch: boolean;
51
+ isRead: boolean;
52
+ isList?: boolean;
53
+ };
54
+ isOpenWorld?(params: Params): boolean;
55
+ requiresUserInteraction?(): boolean;
56
+ shouldDefer?: boolean;
57
+ alwaysLoad?: boolean;
58
+ maxResultSizeChars: number;
59
+ strict?: boolean;
60
+ renderToolUseMessage(input: Partial<Params>, options: {
61
+ theme: string;
62
+ verbose: boolean;
63
+ commands?: unknown[];
64
+ }): string;
65
+ renderToolResultMessage(content: Output, progressMessages: ProgressMessage<ProgressData>[], options: {
66
+ style?: "condensed";
67
+ theme: string;
68
+ tools: Tool[];
69
+ verbose: boolean;
70
+ isTranscriptMode?: boolean;
71
+ isBriefOnly?: boolean;
72
+ input?: unknown;
73
+ }): string;
74
+ extractSearchText?(output: Output): string;
75
+ isResultTruncated?(output: Output): boolean;
76
+ getToolUseSummary?(input: Partial<Params>): string | null;
77
+ getActivityDescription?(input: Partial<Params>): string | null;
78
+ toAutoClassifierInput(params: Params): unknown;
79
+ userFacingName(input: Partial<Params>): string;
80
+ userFacingNameBackgroundColor?(input: Partial<Params>): string | undefined;
81
+ validateInput?(params: Params, context: ToolUseContext): Promise<ValidationResult>;
82
+ checkPermissions(params: Params, context: ToolUseContext): Promise<PermissionResult>;
83
+ getPath?(params: Params): string;
84
+ preparePermissionMatcher?(params: Params): Promise<(pattern: string) => boolean>;
85
+ prompt(options: {
86
+ getToolPermissionContext: () => Promise<ToolPermissionContext>;
87
+ tools: Tool[];
88
+ }): Promise<string>;
89
+ renderToolUseProgressMessage?(progressMessages: ProgressMessage<ProgressData>[], options: {
90
+ tools: Tool[];
91
+ verbose: boolean;
92
+ terminalSize?: {
93
+ columns: number;
94
+ rows: number;
95
+ };
96
+ inProgressToolCallCount?: number;
97
+ isTranscriptMode?: boolean;
98
+ }): string;
99
+ renderToolUseQueuedMessage?(): string;
100
+ renderToolUseRejectedMessage?(input: Params, options: {
101
+ columns: number;
102
+ messages: unknown[];
103
+ style?: "condensed";
104
+ theme: string;
105
+ tools: Tool[];
106
+ verbose: boolean;
107
+ progressMessages: ProgressMessage<ProgressData>[];
108
+ isTranscriptMode?: boolean;
109
+ }): string;
110
+ renderToolUseErrorMessage?(result: unknown, options: {
111
+ progressMessages: ProgressMessage<ProgressData>[];
112
+ tools: Tool[];
113
+ verbose: boolean;
114
+ isTranscriptMode?: boolean;
115
+ }): string;
116
+ renderGroupedToolUse?(toolUses: Array<{
117
+ param: unknown;
118
+ isResolved: boolean;
119
+ isError: boolean;
120
+ isInProgress: boolean;
121
+ progressMessages: ProgressMessage<ProgressData>[];
122
+ result?: {
123
+ param: unknown;
124
+ output: unknown;
125
+ };
126
+ }>, options: {
127
+ shouldAnimate: boolean;
128
+ tools: Tool[];
129
+ }): string | null;
130
+ }
131
+ export interface ToolDef<Params = unknown, Output = unknown, ProgressData = unknown> extends Omit<Tool<Params, Output, ProgressData>, "isEnabled" | "isConcurrencySafe" | "isReadOnly" | "isDestructive" | "checkPermissions" | "toAutoClassifierInput" | "userFacingName"> {
132
+ isEnabled?: () => boolean;
133
+ isConcurrencySafe?: (params: Params) => boolean;
134
+ isReadOnly?: (params: Params) => boolean;
135
+ isDestructive?: (params: Params) => boolean;
136
+ checkPermissions?: (params: Params, context: ToolUseContext) => Promise<PermissionResult>;
137
+ toAutoClassifierInput?: (params: Params) => unknown;
138
+ userFacingName?: (input: Partial<Params>) => string;
139
+ }
140
+ export interface ValidationResult {
141
+ result: boolean;
142
+ message?: string;
143
+ errorCode?: number;
144
+ }
145
+ export interface PermissionResult {
146
+ behavior: "allow" | "deny" | "ask";
147
+ updatedInput?: unknown;
148
+ message?: string;
149
+ }
150
+ export interface ToolPermissionContext {
151
+ mode: "default" | "bypass" | "ask";
152
+ additionalWorkingDirectories: Map<string, unknown>;
153
+ alwaysAllowRules: Record<string, unknown>;
154
+ alwaysDenyRules: Record<string, unknown>;
155
+ alwaysAskRules: Record<string, unknown>;
156
+ isBypassPermissionsModeAvailable: boolean;
157
+ shouldAvoidPermissionPrompts?: boolean;
158
+ awaitAutomatedChecksBeforeDialog?: boolean;
159
+ }
160
+ export interface ProgressMessage<ProgressData = unknown> {
161
+ id: string;
162
+ toolUseId: string;
163
+ data: ProgressData;
164
+ timestamp: number;
165
+ }
166
+ export interface ToolProgress<ProgressData = unknown> {
167
+ toolUseId: string;
168
+ data: ProgressData;
169
+ }
170
+ export type Tools = readonly Tool[];
171
+ export declare const TOOL_DEFAULTS: {
172
+ isEnabled: () => boolean;
173
+ isConcurrencySafe: () => boolean;
174
+ isReadOnly: () => boolean;
175
+ isDestructive: () => boolean;
176
+ checkPermissions: (_params: unknown, _ctx: ToolUseContext) => Promise<PermissionResult>;
177
+ toAutoClassifierInput: () => string;
178
+ userFacingName: (input: Partial<unknown>) => any;
179
+ prompt: () => Promise<string>;
180
+ };
181
+ export declare function buildTool<Params, Output, ProgressData>(def: ToolDef<Params, Output, ProgressData>): Tool<Params, Output, ProgressData>;
182
+ export declare function toDefinitions(tools: Tools): Array<{
183
+ name: string;
184
+ description: string;
185
+ parameters: object;
186
+ }>;
@@ -0,0 +1,29 @@
1
+ // types.ts — Tool types. Based on opencode/packages/llm/src/tool.ts + openclaude/src/Tool.ts
2
+ export const TOOL_DEFAULTS = {
3
+ isEnabled: () => true,
4
+ isConcurrencySafe: () => false,
5
+ isReadOnly: () => false,
6
+ isDestructive: () => false,
7
+ checkPermissions: async (_params, _ctx) => ({
8
+ behavior: "allow",
9
+ updatedInput: _params,
10
+ }),
11
+ toAutoClassifierInput: () => "",
12
+ userFacingName: (input) => input?.name ?? "tool",
13
+ prompt: async () => "Confirm?",
14
+ };
15
+ export function buildTool(def) {
16
+ return {
17
+ ...TOOL_DEFAULTS,
18
+ userFacingName: () => def.name,
19
+ ...def,
20
+ };
21
+ }
22
+ export function toDefinitions(tools) {
23
+ return tools.map((t) => ({
24
+ name: t.name,
25
+ description: t.description,
26
+ parameters: t.inputSchema,
27
+ }));
28
+ }
29
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAsK7F,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI;IACrB,iBAAiB,EAAE,GAAG,EAAE,CAAC,KAAK;IAC9B,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK;IACvB,aAAa,EAAE,GAAG,EAAE,CAAC,KAAK;IAC1B,gBAAgB,EAAE,KAAK,EAAE,OAAgB,EAAE,IAAoB,EAA6B,EAAE,CAAC,CAAC;QAC9F,QAAQ,EAAE,OAAO;QACjB,YAAY,EAAE,OAAO;KACtB,CAAC;IACF,qBAAqB,EAAE,GAAG,EAAE,CAAC,EAAE;IAC/B,cAAc,EAAE,CAAC,KAAuB,EAAE,EAAE,CAAE,KAAa,EAAE,IAAI,IAAI,MAAM;IAC3E,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,UAAU;CAC/B,CAAC;AAEF,MAAM,UAAU,SAAS,CACvB,GAA0C;IAE1C,OAAO;QACL,GAAG,aAAa;QAChB,cAAc,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI;QAC9B,GAAG,GAAG;KAC+B,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAY;IACxC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,UAAU,EAAE,CAAC,CAAC,WAAgC;KAC/C,CAAC,CAAC,CAAC;AACN,CAAC"}
package/dist/ui.js CHANGED
@@ -1,21 +1,17 @@
1
- // ui.ts — camada de apresentação do CLI auton.
2
- // Cores/badges/spinner/tabela/logo/boxes. Tudo respeita NO_COLOR e pipe (isTTY).
3
- // Conteúdo do agente (payload de logs) nunca é colorido — só tags.
4
- import pc from "picocolors";
5
1
  import createSpinner from "ora";
6
- import logSymbols from "log-symbols";
7
2
  import stringWidth from "string-width";
8
3
  import boxen from "boxen";
4
+ import { C, SYM, BOX } from "./theme.js";
9
5
  export const isTTY = process.stdout.isTTY === true;
10
- // --- badges (log-symbols: glyphs exatos, fallback Windows) ---
11
- export const ok = (msg) => pc.green(`${logSymbols.success} ${msg}`);
12
- export const fail = (msg) => pc.red(`${logSymbols.error} ${msg}`);
13
- export const info = (msg) => pc.cyan(`${logSymbols.info} ${msg}`);
14
- export const dim = (msg) => pc.dim(msg);
15
- export const bold = (msg) => pc.bold(msg);
16
- export const url = (msg) => pc.cyan(msg);
6
+ // --- badges ---
7
+ export const ok = (msg) => C.green(`${SYM.ok} ${msg}`);
8
+ export const fail = (msg) => C.blood(`${SYM.fail} ${msg}`);
9
+ export const info = (msg) => C.gray(`${SYM.info} ${msg}`);
10
+ export const dim = (msg) => C.dim(msg);
11
+ export const bold = (msg) => C.bold(msg);
12
+ export const url = (msg) => C.cyan(msg);
17
13
  export function spinner(text) {
18
- const s = createSpinner({ text, color: "cyan" });
14
+ const s = createSpinner({ text, color: "red" });
19
15
  if (isTTY)
20
16
  s.start();
21
17
  return {
@@ -29,7 +25,7 @@ export function spinner(text) {
29
25
  },
30
26
  };
31
27
  }
32
- // --- logo pixel art "AUTON" (fonte ANSI Shadow, TTY) ---
28
+ // --- logo pixel art "AUTON" com gradiente blood red ---
33
29
  const FONT = {
34
30
  A: [
35
31
  " █████╗ ",
@@ -81,7 +77,15 @@ export function logo() {
81
77
  })
82
78
  .join(" ")
83
79
  .trimEnd());
84
- return pc.cyan(lines.join("\n"));
80
+ // Blood red gradient: bright → normal → dim
81
+ return [
82
+ C.crimson(lines[0]),
83
+ C.crimson(lines[1]),
84
+ C.blood(lines[2]),
85
+ C.blood(lines[3]),
86
+ C.dark(lines[4]),
87
+ C.dark(lines[5]),
88
+ ].join("\n");
85
89
  }
86
90
  // --- linha de log do agente: tag colorida, payload cru ---
87
91
  export function tagLine(line) {
@@ -90,43 +94,43 @@ export function tagLine(line) {
90
94
  return line;
91
95
  const [tag, rest] = [m[1], m[2]];
92
96
  const tagColor = tag.includes("error")
93
- ? pc.red
97
+ ? C.blood
94
98
  : tag.includes("info")
95
- ? pc.cyan
99
+ ? C.gray
96
100
  : tag.includes("runtime")
97
- ? pc.yellow
98
- : pc.dim;
101
+ ? C.yellow
102
+ : C.dim;
99
103
  return `${tagColor(tag)} ${rest}`;
100
104
  }
101
105
  // --- status badge colorido ---
102
106
  export function statusColor(s) {
103
107
  if (s === "running")
104
- return pc.green(s);
108
+ return C.green(s);
105
109
  if (s === "scheduled")
106
- return pc.cyan(s);
110
+ return C.gray(s);
107
111
  if (s === "exited")
108
- return pc.red(s);
109
- return pc.yellow(s);
112
+ return C.blood(s);
113
+ return C.yellow(s);
110
114
  }
111
- // --- tabela alinhada com header bold (string-width: cores não desalinham) ---
115
+ // --- tabela alinhada com header bold ---
112
116
  export function table(headers, rows) {
113
117
  const widths = headers.map((h, i) => Math.max(stringWidth(h), ...rows.map((r) => stringWidth(r[i] ?? ""))));
114
118
  const fmt = (cells) => cells
115
119
  .map((c, i) => c + " ".repeat(Math.max(0, widths[i] - stringWidth(c))))
116
120
  .join(" ")
117
121
  .trimEnd();
118
- const head = fmt(headers.map((h, i) => pc.bold(h.padEnd(widths[i]))));
122
+ const head = fmt(headers.map((h, i) => C.bold(h.padEnd(widths[i]))));
119
123
  return [head, ...rows.map(fmt)].join("\n");
120
124
  }
121
- // --- caixa emoldurada (boxen) ---
125
+ // --- caixa emoldurada (vermelho) ---
122
126
  export function box(title, lines) {
123
127
  return boxen(lines.join("\n"), {
124
128
  title,
125
129
  titleAlignment: "left",
126
- padding: 1,
127
- margin: { top: 1, bottom: 1 },
128
- borderStyle: "round",
129
- borderColor: "cyan",
130
+ padding: BOX.padding,
131
+ margin: BOX.margin,
132
+ borderStyle: BOX.borderStyle,
133
+ borderColor: BOX.borderColor,
130
134
  });
131
135
  }
132
136
  //# sourceMappingURL=ui.js.map
package/dist/ui.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAGA,OAAO,aAAa,MAAM,KAAK,CAAC;AAEhC,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAgB,MAAM,YAAY,CAAC;AAEvD,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC;AAEnD,iBAAiB;AACjB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;AACvE,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;AAC3E,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzD,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAQxD,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,MAAM,CAAC,GAAG,aAAa,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAChD,IAAI,KAAK;QAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IACrB,OAAO;QACL,IAAI;YACF,IAAI,KAAK;gBAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;QACD,OAAO,CAAC,CAAS;YACf,IAAI,KAAK;gBAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QACxB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,yDAAyD;AACzD,MAAM,IAAI,GAA6B;IACrC,CAAC,EAAE;QACD,UAAU;QACV,UAAU;QACV,UAAU;QACV,UAAU;QACV,UAAU;QACV,UAAU;KACX;IACD,CAAC,EAAE;QACD,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;KACZ;IACD,CAAC,EAAE;QACD,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;KACZ;IACD,CAAC,EAAE;QACD,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;KACZ;IACD,CAAC,EAAE;QACD,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,YAAY;KACb;CACF,CAAC;AAEF,MAAM,UAAU,IAAI;IAClB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAa,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CACjD,KAAK;SACF,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QACV,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACnD,OAAQ,EAAE,CAAC,GAAG,CAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC;SACT,OAAO,EAAE,CACb,CAAC;IACF,4CAA4C;IAC5C,OAAO;QACL,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC;QACpB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC;QACpB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC;QAClB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC;QAClB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC;QACjB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC;KAClB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC/C,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAW,EAAE,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;QACpC,CAAC,CAAC,CAAC,CAAC,KAAK;QACT,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;YACpB,CAAC,CAAC,CAAC,CAAC,IAAI;YACR,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACvB,CAAC,CAAC,CAAC,CAAC,MAAM;gBACV,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACd,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;AACpC,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,WAAW,CAAC,CAAS;IACnC,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK,WAAW;QAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,IAAI,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,KAAK,CAAC,OAAiB,EAAE,IAAgB;IACvD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAClC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CACtE,CAAC;IACF,MAAM,GAAG,GAAG,CAAC,KAAe,EAAU,EAAE,CACtC,KAAK;SACF,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAG,MAAM,CAAC,CAAC,CAAY,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAClF,IAAI,CAAC,IAAI,CAAC;SACV,OAAO,EAAE,CAAC;IACf,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,KAAe;IAChD,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC7B,KAAK;QACL,cAAc,EAAE,MAAM;QACtB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,WAAW,EAAE,GAAG,CAAC,WAAW;KAC7B,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,20 @@
1
+ export type LogLevel = "trace" | "debug" | "info" | "warn" | "error";
2
+ export interface LogEntry {
3
+ timestamp: string;
4
+ level: LogLevel;
5
+ message: string;
6
+ context?: Record<string, unknown>;
7
+ }
8
+ export interface Logger {
9
+ trace: (message: string, context?: Record<string, unknown>) => void;
10
+ debug: (message: string, context?: Record<string, unknown>) => void;
11
+ info: (message: string, context?: Record<string, unknown>) => void;
12
+ warn: (message: string, context?: Record<string, unknown>) => void;
13
+ error: (message: string, context?: Record<string, unknown>) => void;
14
+ }
15
+ export declare function createLogger(verbose: boolean): Logger;
16
+ export declare function createUiLogger(verbose: boolean): Logger;
17
+ export declare function parseVerboseFlag(args: string[]): {
18
+ verbose: boolean;
19
+ remainingArgs: string[];
20
+ };
@@ -0,0 +1,75 @@
1
+ // verbose.ts — logger JSON lines com timestamp, level, message, context.
2
+ import { info, dim, fail } from "./ui.js";
3
+ const LEVEL_ORDER = ["trace", "debug", "info", "warn", "error"];
4
+ const MIN_LEVEL_INDEX = process.env.AUTON_VERBOSE === "1" ? 0 : 2; // trace/debug/info vs info/warn/error
5
+ function shouldLog(level) {
6
+ return LEVEL_ORDER.indexOf(level) >= MIN_LEVEL_INDEX;
7
+ }
8
+ function formatJson(entry) {
9
+ return JSON.stringify(entry);
10
+ }
11
+ function writeLine(line) {
12
+ console.error(line);
13
+ }
14
+ export function createLogger(verbose) {
15
+ const minIndex = verbose ? 0 : 2;
16
+ function log(level, message, context) {
17
+ if (LEVEL_ORDER.indexOf(level) < minIndex)
18
+ return;
19
+ const entry = {
20
+ timestamp: new Date().toISOString(),
21
+ level,
22
+ message,
23
+ context,
24
+ };
25
+ writeLine(formatJson(entry));
26
+ }
27
+ return {
28
+ trace: (msg, ctx) => log("trace", msg, ctx),
29
+ debug: (msg, ctx) => log("debug", msg, ctx),
30
+ info: (msg, ctx) => log("info", msg, ctx),
31
+ warn: (msg, ctx) => log("warn", msg, ctx),
32
+ error: (msg, ctx) => log("error", msg, ctx),
33
+ };
34
+ }
35
+ export function createUiLogger(verbose) {
36
+ const base = createLogger(verbose);
37
+ return {
38
+ trace: (msg, ctx) => {
39
+ base.trace(msg, ctx);
40
+ if (verbose)
41
+ console.error(dim(`[trace] ${msg}`), ctx ? dim(JSON.stringify(ctx)) : "");
42
+ },
43
+ debug: (msg, ctx) => {
44
+ base.debug(msg, ctx);
45
+ if (verbose)
46
+ console.error(dim(`[debug] ${msg}`), ctx ? dim(JSON.stringify(ctx)) : "");
47
+ },
48
+ info: (msg, ctx) => {
49
+ base.info(msg, ctx);
50
+ console.error(info(msg), ctx ? dim(JSON.stringify(ctx)) : "");
51
+ },
52
+ warn: (msg, ctx) => {
53
+ base.warn(msg, ctx);
54
+ console.error(dim(`⚠ ${msg}`), ctx ? dim(JSON.stringify(ctx)) : "");
55
+ },
56
+ error: (msg, ctx) => {
57
+ base.error(msg, ctx);
58
+ console.error(fail(msg), ctx ? dim(JSON.stringify(ctx)) : "");
59
+ },
60
+ };
61
+ }
62
+ export function parseVerboseFlag(args) {
63
+ const remainingArgs = [];
64
+ let verbose = process.env.AUTON_VERBOSE === "1";
65
+ for (const arg of args) {
66
+ if (arg === "--verbose" || arg === "-v") {
67
+ verbose = true;
68
+ }
69
+ else {
70
+ remainingArgs.push(arg);
71
+ }
72
+ }
73
+ return { verbose, remainingArgs };
74
+ }
75
+ //# sourceMappingURL=verbose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verbose.js","sourceRoot":"","sources":["../src/verbose.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autonsh/cli",
3
- "version": "0.18.0",
3
+ "version": "0.19.0",
4
4
  "description": "auton CLI. Run autonomous tasks in one command.",
5
5
  "type": "module",
6
6
  "files": [
@@ -13,6 +13,13 @@
13
13
  "dev": "tsx src/index.ts",
14
14
  "typecheck": "tsc --noEmit"
15
15
  },
16
+ "exports": {
17
+ ".": "./dist/index.js",
18
+ "./tools": "./dist/tools/index.js",
19
+ "./mcp": "./dist/mcp/index.js",
20
+ "./skills": "./dist/skills/index.js",
21
+ "./llm": "./dist/llm/index.js"
22
+ },
16
23
  "devDependencies": {
17
24
  "@types/node": "^20.10.0",
18
25
  "tsx": "^4.7.0",
@@ -24,8 +31,10 @@
24
31
  "cli-progress": "^3.12.0",
25
32
  "handlebars": "^4.7.8",
26
33
  "log-symbols": "^7.0.1",
34
+ "minimatch": "^10.2.6",
27
35
  "ora": "^9.4.1",
28
36
  "picocolors": "^1.1.1",
29
- "string-width": "^8.2.2"
37
+ "string-width": "^8.2.2",
38
+ "zod": "^3.25.76"
30
39
  }
31
40
  }
@@ -2,8 +2,6 @@ name: api-json
2
2
  description: Endpoint HTTP customizado — retorna JSON/status/headers via task.done
3
3
  goal: "retorna JSON customizado"
4
4
  entry: agent.ts
5
- models:
6
- default: mock:local
7
5
  env:
8
6
  - OPENAI_API_KEY
9
7
  http: true
@@ -33,4 +33,4 @@ genesis: |
33
33
  - VERIFY: tsc --noEmit → vitest run → eslint
34
34
  - CHECKPOINT: salve evidência (diff, testes, coverage)
35
35
 
36
- Responda em PT-BR. Seja conciso.
36
+ Responda em PT-BR. Seja conciso.
@@ -2,6 +2,4 @@ name: cron-digester
2
2
  description: Resumo periódico (cron)
3
3
  goal: "resume os eventos do período"
4
4
  entry: agent.ts
5
- models:
6
- default: mock:local
7
5
  cron: "*/3 * * * * *"
@@ -2,14 +2,3 @@ name: harness
2
2
  description: Modo harness — loop agêntico local (sem CP), checkpoints persistentes
3
3
  goal: ""
4
4
  entry: harness.ts
5
- models:
6
- default: ollama:qwen2.5-coder:14b-instruct-q4_K_M
7
- env: []
8
- mode: harness
9
- harness:
10
- loop: true
11
- maxTurns: 10
12
- checkpointDir: ".auton/checkpoints"
13
- verify:
14
- typecheck: "tsc --noEmit"
15
- test: "vitest run"
@@ -1,7 +1,7 @@
1
1
  import { agent, TASK_DONE_EVENT } from "@autonsh/runtime";
2
2
 
3
- // Template multi-agent — delega via HTTP nativo ao CP (sem spawn CLI)
4
- // Modo: build/deploy — usa fetch nativo (policy fetch: true)
3
+ // Template multi-agent — delega via ctx.tools.fetch ao CP (respeita policy)
4
+ // Modo: build/deploy — fetch permitido em ambos (policy fetch: true)
5
5
  export default agent(async (ctx) => {
6
6
  const goal = ((ctx.input as { prompt?: string } | undefined)?.prompt ?? "").trim()
7
7
  || "orquestra agentes";
@@ -11,20 +11,19 @@ export default agent(async (ctx) => {
11
11
  if (!api) throw new Error("AUTON_API não definido — delegação requer CP");
12
12
  await ctx.logger.info("multi-agent iniciado", { goal, mode });
13
13
 
14
- // Delega via HTTP nativo ao CP: POST /v1/agents/{name}/invoke
14
+ // Delega via ctx.tools.fetch ao CP: POST /v1/agents/{name}/invoke
15
15
  // Retorna {result, turn, lines} — result é o TASK:DONE estruturado
16
16
  async function delegate(toAgent: string, prompt: string): Promise<any> {
17
17
  try {
18
- const res = await fetch(`${api}/v1/agents/${toAgent}/invoke`, {
18
+ const res = await ctx.tools.fetch(`${api}/v1/agents/${toAgent}/invoke`, {
19
19
  method: "POST",
20
20
  headers: { "Content-Type": "application/json" },
21
21
  body: JSON.stringify({ prompt }),
22
22
  });
23
- if (!res.ok) {
24
- const text = await res.text();
25
- return { erro: `HTTP ${res.status}: ${text}` };
23
+ if (res.status >= 400) {
24
+ return { erro: `HTTP ${res.status}: ${res.text}` };
26
25
  }
27
- const data = await res.json();
26
+ const data = JSON.parse(res.text);
28
27
  return data.result ?? { turn: data.turn, lines: data.lines };
29
28
  } catch (err) {
30
29
  return { erro: (err as Error).message };
@@ -1,9 +1,7 @@
1
1
  name: multi-agent
2
- description: Orquestração multi-agent — delega para worker via CLI/HTTP
2
+ description: Orquestração multi-agent — delega para worker via HTTP (ctx.tools.fetch)
3
3
  goal: "orquestra agentes"
4
4
  entry: agent.ts
5
- models:
6
- default: mock:local
7
5
  env:
8
6
  - OPENAI_API_KEY
9
7
  http: true
@@ -2,31 +2,3 @@ name: research
2
2
  description: Agente de pesquisa — busca, sumariza, cita fontes, gera relatórios
3
3
  goal: ""
4
4
  entry: agent.ts
5
- models:
6
- default: ollama:qwen2.5-coder:14b-instruct-q4_K_M
7
- env: []
8
- mode: research
9
- skills:
10
- - api
11
- - docs
12
- verify:
13
- sources: "echo 'verificar citações'"
14
- genesis: |
15
- Você é um pesquisador técnico. Sua missão: encontrar, verificar e sintetizar informação.
16
-
17
- Princípios:
18
- 1. Fontes primárias > secundárias > opinião
19
- 2. Cite SEMPRE: URL, data, autor, trecho relevante
20
- 3. Verifique contradições entre fontes
21
- 4. Distinga fato de especulação
22
- 5. Estruture: Resumo → Evidência → Conclusão → Gaps
23
-
24
- Ferramentas: ctx.tools.exec (curl, grep, jq), ctx.tools.read/write
25
- Output: relatório Markdown com seções claras e citações inline [1], [2]...
26
-
27
- Fluxo:
28
- - PLAN: defina queries, fontes, critérios de inclusão
29
- - SEARCH: execute buscas, salve raw results
30
- - SYNTHESIZE: agrupe por tema, resolva conflitos
31
- - REPORT: gere Markdown estruturado
32
- - VERIFY: todas as claims têm citação?
@@ -2,8 +2,6 @@ name: support
2
2
  description: Suporte — responde aos pedidos do trigger com o LLM
3
3
  goal: "responde o pedido do usuário"
4
4
  entry: agent.ts
5
- models:
6
- default: mock:local
7
5
  env:
8
6
  - OPENAI_API_KEY
9
7
  http: true
@@ -2,6 +2,4 @@ name: webhook-echo
2
2
  description: Eco de webhooks
3
3
  goal: "ecoa o payload do webhook"
4
4
  entry: agent.ts
5
- models:
6
- default: mock:local
7
5
  http: true
@@ -2,8 +2,6 @@ name: with-approval
2
2
  description: Demonstra o gate humano — gera algo, pede aprovação, executa só depois
3
3
  goal: "gera o relatório e pede aprovação antes de publicar"
4
4
  entry: agent.ts
5
- models:
6
- default: mock:local
7
5
  env:
8
6
  - OPENAI_API_KEY
9
7
  approval: true