@autonsh/cli 0.18.0 → 0.19.1

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 (121) hide show
  1. package/dist/chat.d.ts +1 -1
  2. package/dist/chat.js +177 -119
  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 +69 -0
  89. package/dist/statusline.js.map +1 -0
  90. package/dist/streaming.d.ts +25 -0
  91. package/dist/streaming.js +94 -0
  92. package/dist/streaming.js.map +1 -0
  93. package/dist/theme.d.ts +54 -0
  94. package/dist/theme.js +115 -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.d.ts +5 -0
  106. package/dist/ui.js +50 -83
  107. package/dist/ui.js.map +1 -1
  108. package/dist/verbose.d.ts +20 -0
  109. package/dist/verbose.js +75 -0
  110. package/dist/verbose.js.map +1 -0
  111. package/package.json +13 -2
  112. package/templates/api-json/task.yaml +0 -2
  113. package/templates/coding/task.yaml +1 -1
  114. package/templates/cron-digester/task.yaml +0 -2
  115. package/templates/harness/task.yaml +0 -11
  116. package/templates/multi-agent/agent.ts +7 -8
  117. package/templates/multi-agent/task.yaml +1 -3
  118. package/templates/research/task.yaml +0 -28
  119. package/templates/support/task.yaml +0 -2
  120. package/templates/webhook-echo/task.yaml +0 -2
  121. package/templates/with-approval/task.yaml +0 -2
package/dist/model.js CHANGED
@@ -1,79 +1,12 @@
1
- // model.ts — `auton model`: seletor de modelos estilo `ollama list`/`ollama run`.
2
- // TTY: seletor com setas (local ollama + providers configurados + ações).
3
- // Pipe/CI: subcomandos explícitos (ls/set/test) — nunca trava em prompt.
1
+ // model.ts — `auton model`: seletor interativo (TTY) + ls/set/test.
2
+ // Pipe/CI: subcomandos explícitos nunca trava em prompt.
4
3
  import { select, text, log, isCancel } from "@clack/prompts";
5
4
  import pc from "picocolors";
6
- import { dim, table, isTTY, ok, info } from "./ui.js";
5
+ import { dim, table, isTTY, ok, info, bold } from "./ui.js";
7
6
  import { loadConfig, saveConfig, getDefaultModel, setDefaultModel, } from "./config.js";
8
- /** tags locais do ollama (OLLAMA_API ou localhost:11434). null = offline. */
9
- export async function ollamaTags() {
10
- const base = process.env.OLLAMA_API ?? "http://localhost:11434";
11
- const res = await fetch(`${base}/api/tags`).catch(() => null);
12
- if (!res?.ok)
13
- return null;
14
- const body = (await res.json().catch(() => null));
15
- return body?.models ?? [];
16
- }
17
- export function fmtSize(n) {
18
- if (n === undefined)
19
- return "?";
20
- const gb = n / 1e9;
21
- return gb >= 1 ? `${gb.toFixed(1)}GB` : `${Math.round(n / 1e6)}MB`;
22
- }
23
- /** rótulo amigável de um provider configurado. */
24
- export function providerLabel(p) {
25
- const [prov, model] = p.model.split(":", 2);
26
- return `${p.label} — ${pc.cyan(p.model)}` + (prov === "ollama" && !p.key ? dim(" (local)") : "");
27
- }
28
- async function manualSpec() {
29
- const spec = await text({
30
- message: "spec do modelo (provider:modelo)",
31
- placeholder: "ollama:qwen3 → openai:gpt-4o-mini → gemini:gemini-2.0-flash",
32
- validate: (v) => !v || !v.includes(":") ? "formato: provider:modelo (ex: ollama:qwen3)" : undefined,
33
- });
34
- if (isCancel(spec))
35
- return undefined;
36
- return spec.trim();
37
- }
38
- /** seletor interativo completo: local + providers + ações. Retorna spec escolhida ou undefined. */
39
- export async function pickModel() {
40
- const cfg = loadConfig();
41
- const tags = await ollamaTags();
42
- const current = getDefaultModel();
43
- for (;;) {
44
- const localGroup = tags?.map((t) => ({ value: `ollama:${t.name}`, label: `${t.name} ${dim(fmtSize(t.size))}`, hint: t.details?.parameter_size ?? undefined })) ?? [];
45
- const provGroup = cfg.providers.map((p) => ({
46
- value: p.model,
47
- label: providerLabel(p),
48
- }));
49
- const chosen = (await select({
50
- message: current ? `modelo default atual: ${pc.cyan(current)}` : "escolha o modelo default",
51
- options: [
52
- ...(localGroup.length > 0
53
- ? [{ value: "__local__", label: dim("LOCAL (ollama)"), disabled: true }, ...localGroup]
54
- : [{ value: "__local__", label: dim("nenhum modelo local — rode `ollama pull <nome>`"), disabled: true }]),
55
- ...(provGroup.length > 0
56
- ? [{ value: "__prov__", label: dim("CONFIGURADOS (login)"), disabled: true }, ...provGroup]
57
- : []),
58
- { value: "__login__", label: current ? "adicionar/editar provider (login)" : "conectar provider (login)" },
59
- { value: "__manual__", label: "especificar modelo manualmente" },
60
- ],
61
- }));
62
- if (isCancel(chosen) || chosen === "__local__" || chosen === "__prov__")
63
- return undefined;
64
- if (chosen === "__manual__") {
65
- const spec = await manualSpec();
66
- if (spec)
67
- return spec;
68
- continue;
69
- }
70
- if (chosen === "__login__") {
71
- log.message(dim("rode `auton login` para conectar um provider — depois volte aqui"));
72
- return undefined;
73
- }
74
- return chosen; // spec real (ollama:x, provider configurado)
75
- }
76
- }
7
+ import { ollamaTags } from "./ollama.js";
8
+ import { defaultRegistry } from "./llm/registry.js";
9
+ import { AutonError, ErrorCodes } from "./errors.js";
77
10
  /** `auton model ls` — tabela local + configurados. */
78
11
  export async function modelLs(json) {
79
12
  const cfg = loadConfig();
@@ -94,12 +27,13 @@ export async function modelLs(json) {
94
27
  return;
95
28
  }
96
29
  if (cfg.providers.length > 0) {
97
- console.log(boldProviders());
98
- console.log(table(["ID", "PROVIDER", "MODEL", "KEY", "DEFAULT"], cfg.providers.map((p) => [
30
+ console.log(bold("PROVIDERS CONFIGURADOS"));
31
+ console.log(table(["ID", "KIND", "MODEL", "KEY", "BASE", "DEFAULT"], cfg.providers.map((p) => [
99
32
  p.id,
100
- p.provider,
33
+ p.kind,
101
34
  p.model,
102
- p.key ? "sim" : "-",
35
+ p.apiKey ? "sim" : "-",
36
+ p.baseUrl ? "custom" : "-",
103
37
  p.model === defaultModel ? pc.green("✓") : "-",
104
38
  ])));
105
39
  }
@@ -109,7 +43,7 @@ export async function modelLs(json) {
109
43
  : dim("(nenhum modelo local — rode `ollama pull <nome>`)"));
110
44
  }
111
45
  else {
112
- console.log(boldLocal());
46
+ console.log(bold("\nMODELOS LOCAIS (ollama)"));
113
47
  console.log(table(["MODELO LOCAL", "TAMANHO", "PARAMS"], local.map((t) => [
114
48
  t.name,
115
49
  fmtSize(t.size),
@@ -119,16 +53,114 @@ export async function modelLs(json) {
119
53
  if (!defaultModel)
120
54
  console.log(info("nenhum default — rode `auton model` pra escolher"));
121
55
  }
122
- function boldProviders() {
123
- return pc.bold("PROVIDERS CONFIGURADOS");
56
+ function fmtSize(n) {
57
+ if (n === undefined)
58
+ return "?";
59
+ const gb = n / 1e9;
60
+ return gb >= 1 ? `${gb.toFixed(1)}GB` : `${Math.round(n / 1e6)}MB`;
124
61
  }
125
- function boldLocal() {
126
- return pc.bold("\nMODELOS LOCAIS (ollama)");
62
+ /** rótulo amigável de um provider configurado. */
63
+ export function providerLabel(p) {
64
+ return `${p.label} — ${pc.cyan(p.model)}` + (p.kind === "ollama" && !p.apiKey ? dim(" (local)") : "");
65
+ }
66
+ /** seletor interativo completo: local ollama + providers configurados + ações. */
67
+ export async function pickModel() {
68
+ const cfg = loadConfig();
69
+ const tags = await ollamaTags();
70
+ const current = getDefaultModel();
71
+ for (;;) {
72
+ const localGroup = tags?.map((t) => ({ value: `ollama:${t.name}`, label: `${t.name} ${dim(fmtSize(t.size))}`, hint: t.details?.parameter_size ?? undefined })) ?? [];
73
+ const provGroup = cfg.providers.map((p) => ({
74
+ value: p.model,
75
+ label: providerLabel(p),
76
+ }));
77
+ const chosen = (await select({
78
+ message: current ? `modelo default atual: ${pc.cyan(current)}` : "escolha o modelo default",
79
+ options: [
80
+ ...(localGroup.length > 0
81
+ ? [{ value: "__local__", label: dim("LOCAL (ollama)"), disabled: true }, ...localGroup]
82
+ : [{ value: "__local__", label: dim("nenhum modelo local — rode `ollama pull <nome>`"), disabled: true }]),
83
+ ...(provGroup.length > 0
84
+ ? [{ value: "__prov__", label: dim("CONFIGURADOS (login)"), disabled: true }, ...provGroup]
85
+ : []),
86
+ { value: "__login__", label: current ? "adicionar/editar provider (login)" : "conectar provider (login)" },
87
+ { value: "__manual__", label: "especificar modelo manualmente (provider:modelo)" },
88
+ { value: "__registry__", label: "buscar no registry (fuzzy)" },
89
+ ],
90
+ }));
91
+ if (isCancel(chosen) || chosen === "__local__" || chosen === "__prov__")
92
+ return undefined;
93
+ if (chosen === "__manual__") {
94
+ const spec = await text({
95
+ message: "spec do modelo (provider:modelo)",
96
+ placeholder: "ollama:qwen3 → openai:gpt-4o-mini → gemini:gemini-2.0-flash",
97
+ validate: (v) => !v || !v.includes(":") ? "formato: provider:modelo (ex: ollama:qwen3)" : undefined,
98
+ });
99
+ if (isCancel(spec))
100
+ return undefined;
101
+ return spec.trim();
102
+ }
103
+ if (chosen === "__login__") {
104
+ log.message(dim("rode `auton login` para conectar um provider — depois volte aqui"));
105
+ return undefined;
106
+ }
107
+ if (chosen === "__registry__") {
108
+ const query = await text({
109
+ message: "buscar modelo no registry",
110
+ placeholder: "sonnet, gpt-4o, llama, qwen...",
111
+ });
112
+ if (isCancel(query))
113
+ return undefined;
114
+ const q = query.trim().toLowerCase();
115
+ const all = defaultRegistry.getAll();
116
+ const matches = all
117
+ .map((m) => {
118
+ let best = 0;
119
+ const check = (s) => {
120
+ if (!s)
121
+ return 0;
122
+ const t = s.toLowerCase();
123
+ if (t === q)
124
+ return 100;
125
+ if (t.startsWith(q))
126
+ return 90;
127
+ if (t.includes(q))
128
+ return 70;
129
+ return 0;
130
+ };
131
+ best = Math.max(best, check(m.id), check(m.displayName), check(m.apiModel));
132
+ for (const alias of m.aliases)
133
+ best = Math.max(best, check(alias));
134
+ return { model: m, score: best };
135
+ })
136
+ .filter((x) => x.score >= 30)
137
+ .sort((a, b) => b.score - a.score)
138
+ .slice(0, 20);
139
+ if (matches.length === 0) {
140
+ log.message(dim("nenhum match"));
141
+ continue;
142
+ }
143
+ const choice = (await select({
144
+ message: `resultados para "${query}"`,
145
+ options: matches.map(({ model, score }) => ({
146
+ value: `${model.provider}:${model.apiModel}`,
147
+ label: `${model.displayName} (${model.id})`,
148
+ hint: `${model.provider} • ${model.contextLimits.contextWindow.toLocaleString()}ctx • ${score}%`,
149
+ })),
150
+ }));
151
+ if (isCancel(choice))
152
+ continue;
153
+ return choice;
154
+ }
155
+ return chosen; // spec real (ollama:x, provider configurado)
156
+ }
127
157
  }
128
158
  /** `auton model set <spec>` — não-interativo, grava default. */
129
159
  export async function modelSet(spec) {
130
160
  if (!spec.includes(":")) {
131
- throw new Error("uso: auton model set <provider:modelo> (ex: ollama:qwen3)");
161
+ throw new AutonError(ErrorCodes.CONFIG_INVALID, "formato inválido", {
162
+ suggestion: "use: auton model set <provider:modelo> (ex: ollama:qwen3)",
163
+ });
132
164
  }
133
165
  setDefaultModel(spec.trim());
134
166
  console.log(ok(`modelo default: ${pc.cyan(spec.trim())}`));
@@ -146,20 +178,28 @@ export async function modelTest() {
146
178
  lok ? ok(`${Date.now() - t0}ms`) : dim("offline"),
147
179
  ]);
148
180
  for (const p of cfg.providers) {
149
- const [prov] = p.model.split(":", 2);
150
- if (prov === "ollama")
151
- continue; // já testado acima
152
181
  const t1 = Date.now();
153
182
  let okv = false;
154
183
  try {
155
- if (p.base) {
156
- okv = await fetch(`${p.base}/models`).then((r) => r.ok).catch(() => false);
184
+ if (p.baseUrl) {
185
+ okv = await fetch(`${p.baseUrl}/models`, {
186
+ headers: p.apiKey ? { Authorization: `Bearer ${p.apiKey}` } : {},
187
+ }).then((r) => r.ok).catch(() => false);
188
+ }
189
+ else if (p.kind === "google") {
190
+ okv = await fetch("https://generativelanguage.googleapis.com/v1beta/models", {
191
+ headers: { "x-goog-api-key": p.apiKey ?? "" },
192
+ }).then((r) => r.ok).catch(() => false);
157
193
  }
158
- else if (prov === "gemini") {
159
- okv = await fetch("https://generativelanguage.googleapis.com/v1beta/models").then((r) => r.ok).catch(() => false);
194
+ else if (p.kind === "anthropic") {
195
+ okv = await fetch("https://api.anthropic.com/v1/models", {
196
+ headers: { "x-api-key": p.apiKey ?? "", "anthropic-version": "2023-06-01" },
197
+ }).then((r) => r.ok).catch(() => false);
160
198
  }
161
199
  else {
162
- okv = await fetch("https://api.openai.com/v1/models").then((r) => r.ok).catch(() => false);
200
+ okv = await fetch("https://api.openai.com/v1/models", {
201
+ headers: { Authorization: `Bearer ${p.apiKey ?? ""}` },
202
+ }).then((r) => r.ok).catch(() => false);
163
203
  }
164
204
  }
165
205
  catch {
package/dist/model.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export interface OllamaTag {
2
+ name: string;
3
+ size?: number;
4
+ details?: {
5
+ parameter_size?: string;
6
+ family?: string;
7
+ };
8
+ }
9
+ /** tags locais do ollama (OLLAMA_API ou localhost:11434). null = offline. */
10
+ export declare function ollamaTags(): Promise<OllamaTag[] | null>;
package/dist/ollama.js ADDED
@@ -0,0 +1,11 @@
1
+ // ollama.ts — Ollama local tags
2
+ /** tags locais do ollama (OLLAMA_API ou localhost:11434). null = offline. */
3
+ export async function ollamaTags() {
4
+ const base = process.env.OLLAMA_API ?? "http://localhost:11434";
5
+ const res = await fetch(`${base}/api/tags`).catch(() => null);
6
+ if (!res?.ok)
7
+ return null;
8
+ const body = (await res.json().catch(() => null));
9
+ return body?.models ?? [];
10
+ }
11
+ //# sourceMappingURL=ollama.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../src/ollama.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAQhC,6EAA6E;AAC7E,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,wBAAwB,CAAC;IAChE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC9D,IAAI,CAAC,GAAG,EAAE,EAAE;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAoC,CAAC;IACrF,OAAO,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,37 @@
1
+ export interface RepoMapOptions {
2
+ maxFiles?: number;
3
+ maxDepth?: number;
4
+ maxBytesPerFileName?: number;
5
+ root?: string;
6
+ }
7
+ export interface FileInfo {
8
+ path: string;
9
+ language: string;
10
+ extension: string;
11
+ depth: number;
12
+ size: number;
13
+ }
14
+ export interface Count {
15
+ name: string;
16
+ count: number;
17
+ }
18
+ export interface RepoMapSnapshot {
19
+ root: string;
20
+ files: FileInfo[];
21
+ fileCount: number;
22
+ directoryCount: number;
23
+ maxDepth: number;
24
+ languageCounts: Count[];
25
+ extensionCounts: Count[];
26
+ importantFiles: string[];
27
+ tree: string[];
28
+ truncated: boolean;
29
+ }
30
+ export interface SearchResult {
31
+ path: string;
32
+ score: number;
33
+ reason: string;
34
+ }
35
+ export declare function scanRepoMap(options?: RepoMapOptions): RepoMapSnapshot;
36
+ export declare function searchRepoMap(snapshot: RepoMapSnapshot, query: string, limit?: number): SearchResult[];
37
+ export declare function formatRepoMapForPrompt(snapshot: RepoMapSnapshot, maxLines?: number): string;