@autonsh/cli 0.17.2 → 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 (136) 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 +304 -119
  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/prompts.d.ts +34 -8
  76. package/dist/prompts.js +186 -8
  77. package/dist/prompts.js.map +1 -1
  78. package/dist/repomap.d.ts +37 -0
  79. package/dist/repomap.js +431 -0
  80. package/dist/repomap.js.map +1 -0
  81. package/dist/skills/index.d.ts +3 -0
  82. package/dist/skills/index.js +5 -0
  83. package/dist/skills/index.js.map +1 -0
  84. package/dist/skills/registry.d.ts +16 -0
  85. package/dist/skills/registry.js +128 -0
  86. package/dist/skills/registry.js.map +1 -0
  87. package/dist/skills/types.d.ts +48 -0
  88. package/dist/skills/types.js +3 -0
  89. package/dist/skills/types.js.map +1 -0
  90. package/dist/statusline.d.ts +21 -0
  91. package/dist/statusline.js +68 -0
  92. package/dist/statusline.js.map +1 -0
  93. package/dist/streaming.d.ts +25 -0
  94. package/dist/streaming.js +91 -0
  95. package/dist/streaming.js.map +1 -0
  96. package/dist/task.d.ts +9 -1
  97. package/dist/task.js +21 -0
  98. package/dist/task.js.map +1 -1
  99. package/dist/template-engine.d.ts +19 -0
  100. package/dist/template-engine.js +187 -0
  101. package/dist/template-engine.js.map +1 -0
  102. package/dist/template-registry.d.ts +36 -0
  103. package/dist/template-registry.js +294 -0
  104. package/dist/template-registry.js.map +1 -0
  105. package/dist/theme.d.ts +52 -0
  106. package/dist/theme.js +92 -0
  107. package/dist/theme.js.map +1 -0
  108. package/dist/tools/builtin.d.ts +11 -0
  109. package/dist/tools/builtin.js +491 -0
  110. package/dist/tools/builtin.js.map +1 -0
  111. package/dist/tools/index.d.ts +3 -0
  112. package/dist/tools/index.js +5 -0
  113. package/dist/tools/index.js.map +1 -0
  114. package/dist/tools/types.d.ts +186 -0
  115. package/dist/tools/types.js +29 -0
  116. package/dist/tools/types.js.map +1 -0
  117. package/dist/ui.js +34 -30
  118. package/dist/ui.js.map +1 -1
  119. package/dist/verbose.d.ts +20 -0
  120. package/dist/verbose.js +75 -0
  121. package/dist/verbose.js.map +1 -0
  122. package/package.json +12 -2
  123. package/templates/api-json/task.yaml +0 -2
  124. package/templates/coding/agent.md +39 -0
  125. package/templates/coding/agent.ts +83 -0
  126. package/templates/coding/task.yaml +36 -0
  127. package/templates/cron-digester/task.yaml +0 -2
  128. package/templates/harness/agent.md +43 -0
  129. package/templates/harness/harness.ts +145 -0
  130. package/templates/harness/task.yaml +4 -0
  131. package/templates/multi-agent/agent.ts +7 -8
  132. package/templates/multi-agent/task.yaml +1 -3
  133. package/templates/research/task.yaml +4 -0
  134. package/templates/support/task.yaml +0 -2
  135. package/templates/webhook-echo/task.yaml +0 -2
  136. 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"}
package/dist/prompts.d.ts CHANGED
@@ -1,12 +1,30 @@
1
- export declare const TEMPLATES: readonly ["support", "cron-digester", "webhook-echo", "with-approval", "api-json", "multi-agent"];
2
- export type Template = (typeof TEMPLATES)[number];
3
- export declare function promptCanceled(): never;
4
- /** init sem argumentos: pergunta template + nome (+ modelo default opcional). */
5
- export declare function promptInit(): Promise<{
1
+ export interface InitOptions {
6
2
  name: string;
7
- template: Template;
8
- }>;
9
- /** confirm destrutivo (TTY). Retorna false se cancelou. */
3
+ templateId: string;
4
+ variables: Record<string, unknown>;
5
+ mode?: string;
6
+ skills?: string[];
7
+ genesis?: string;
8
+ harness?: boolean;
9
+ deploy?: boolean;
10
+ dryRun?: boolean;
11
+ }
12
+ export interface GenesisSpec {
13
+ role: string;
14
+ principles: string[];
15
+ workflow: string[];
16
+ constraints: string[];
17
+ tone: "concise" | "detailed" | "educational";
18
+ language: "pt-BR" | "en";
19
+ }
20
+ export declare function promptCanceled(): never;
21
+ /** init sem argumentos: pergunta template + nome + variáveis + genesis opcional. */
22
+ export declare function promptInit(): Promise<InitOptions>;
23
+ /** Gera genesis prompt interativo */
24
+ export declare function promptGenesis(): Promise<string | undefined>;
25
+ /** Gera bloco YAML multiline (|) para task.yaml */
26
+ export declare function generateGenesisYaml(spec: GenesisSpec): string;
27
+ /** Confirma destrutivo (TTY). Retorna false se cancelou. */
10
28
  export declare function promptConfirmUndeploy(name: string): Promise<boolean>;
11
29
  /** Gate de aprovação (0.12): TTY pergunta — true = aprove, false = rejeita. */
12
30
  export declare function promptGateApproval(reason: string): Promise<boolean>;
@@ -17,3 +35,11 @@ export declare function parseGateLine(line: string): {
17
35
  kind: "approval" | "question";
18
36
  payload: Record<string, unknown>;
19
37
  } | undefined;
38
+ /** Lista templates para `auton template list` */
39
+ export declare function listTemplatesForDisplay(): Promise<Array<{
40
+ id: string;
41
+ name: string;
42
+ category: string;
43
+ description: string;
44
+ source: string;
45
+ }>>;
package/dist/prompts.js CHANGED
@@ -6,20 +6,32 @@ import { basename } from "node:path";
6
6
  import { dim } from "./ui.js";
7
7
  import { getDefaultModel, setDefaultModel } from "./config.js";
8
8
  import { pickModel } from "./model.js";
9
- export const TEMPLATES = ["support", "cron-digester", "webhook-echo", "with-approval", "api-json", "multi-agent"];
9
+ import { getTemplateRegistry } from "./template-registry.js";
10
10
  export function promptCanceled() {
11
11
  outro("cancelado");
12
12
  process.exit(0);
13
13
  }
14
- /** init sem argumentos: pergunta template + nome (+ modelo default opcional). */
14
+ /** init sem argumentos: pergunta template + nome + variáveis + genesis opcional. */
15
15
  export async function promptInit() {
16
+ const registry = await getTemplateRegistry();
17
+ const templates = await registry.list();
16
18
  intro(pc.bold("criar novo agente"));
17
- const template = await select({
19
+ // 1. Seleciona template (built-in + custom)
20
+ const templateChoices = templates.map(t => ({
21
+ value: t.id,
22
+ label: `${t.name} ${dim(`(${t.category})`)}`,
23
+ hint: t.description,
24
+ }));
25
+ const templateId = await select({
18
26
  message: "qual template?",
19
- options: TEMPLATES.map((t) => ({ value: t, label: t })),
27
+ options: templateChoices,
20
28
  });
21
- if (isCancel(template))
29
+ if (isCancel(templateId))
22
30
  promptCanceled();
31
+ const template = await registry.get(templateId);
32
+ if (!template)
33
+ throw new Error(`template ${templateId} não encontrado`);
34
+ // 2. Nome do agente
23
35
  const name = await text({
24
36
  message: "nome do agente",
25
37
  placeholder: basename(process.cwd()),
@@ -27,7 +39,32 @@ export async function promptInit() {
27
39
  });
28
40
  if (isCancel(name))
29
41
  promptCanceled();
30
- // 0.17: passo modelo seta default global (config.json), não o task.yaml
42
+ // 3. Variáveis do template (além de name)
43
+ const variables = { name: name.trim() };
44
+ const extraVars = template.variables.filter(v => v.key !== "name");
45
+ if (extraVars.length > 0) {
46
+ for (const v of extraVars) {
47
+ const value = await promptVariable(v, variables);
48
+ if (isCancel(value))
49
+ promptCanceled();
50
+ variables[v.key] = value;
51
+ }
52
+ }
53
+ // 4. Genesis custom (se template suporta)
54
+ let genesis;
55
+ if (template.hasGenesis) {
56
+ const wantGenesis = await confirm({
57
+ message: "criar genesis prompt custom? (personalidade/comportamento do agente)",
58
+ active: "sim",
59
+ inactive: "não (usa padrão do template)",
60
+ });
61
+ if (!isCancel(wantGenesis) && wantGenesis) {
62
+ genesis = await promptGenesis();
63
+ if (isCancel(genesis))
64
+ promptCanceled();
65
+ }
66
+ }
67
+ // 5. Modelo default global (opcional, como antes)
31
68
  const setModel = await confirm({
32
69
  message: getDefaultModel()
33
70
  ? `modelo default atual: ${pc.cyan(getDefaultModel())} — mudar?`
@@ -41,9 +78,138 @@ export async function promptInit() {
41
78
  setDefaultModel(spec);
42
79
  }
43
80
  outro("tudo pronto");
44
- return { name: name.trim(), template: template };
81
+ return {
82
+ name: name.trim(),
83
+ templateId: template.id,
84
+ variables,
85
+ genesis,
86
+ };
87
+ }
88
+ /** Pergunta uma variável individual baseada no tipo */
89
+ async function promptVariable(v, context) {
90
+ const message = v.description ? `${v.label} — ${v.description}` : v.label;
91
+ switch (v.type) {
92
+ case "select": {
93
+ const options = (v.options ?? []).map(opt => ({ value: opt, label: opt }));
94
+ const ans = await select({ message, options });
95
+ return isCancel(ans) ? undefined : ans;
96
+ }
97
+ case "boolean": {
98
+ const ans = await confirm({
99
+ message,
100
+ active: "sim",
101
+ inactive: "não",
102
+ });
103
+ return isCancel(ans) ? (v.default === "true") : ans;
104
+ }
105
+ case "string":
106
+ default: {
107
+ const ans = await text({
108
+ message,
109
+ placeholder: v.default ?? "",
110
+ validate: v.required ? (val) => (!val || val.trim() === "" ? "obrigatório" : undefined) : undefined,
111
+ });
112
+ return isCancel(ans) ? (v.default ?? "") : ans.trim();
113
+ }
114
+ }
45
115
  }
46
- /** confirm destrutivo (TTY). Retorna false se cancelou. */
116
+ /** Gera genesis prompt interativo */
117
+ export async function promptGenesis() {
118
+ intro(pc.bold("genesis prompt — personalidade do agente"));
119
+ const role = await text({
120
+ message: "role (ex: engenheiro TypeScript sênior, revisor de código, arquiteto de APIs)",
121
+ placeholder: "engenheiro de software",
122
+ validate: (v) => (!v || v.trim() === "" ? "role não pode ser vazio" : undefined),
123
+ });
124
+ if (isCancel(role))
125
+ return undefined;
126
+ const principles = await collectList("princípios invioláveis (um por linha, vazio para terminar)", [
127
+ "Entenda o código ANTES de mudar",
128
+ "Mudanças pequenas, atômicas, testáveis",
129
+ "Tipos estritos: strict, noImplicitAny",
130
+ ]);
131
+ if (isCancel(principles))
132
+ return undefined;
133
+ const workflow = await collectList("workflow por task (passos sequenciais)", [
134
+ "PLAN: analise impacto, liste arquivos, defina testes",
135
+ "IMPLEMENT: edite um arquivo por vez, rode typecheck",
136
+ "VERIFY: tsc --noEmit → vitest run → eslint",
137
+ "CHECKPOINT: salve evidência (diff, testes, coverage)",
138
+ ]);
139
+ if (isCancel(workflow))
140
+ return undefined;
141
+ const constraints = await collectList("constraints (o que NÃO fazer)", [
142
+ "Nunca quebre API pública sem migração",
143
+ "Não commite/pushe — é efeito externo",
144
+ "Não escreva secrets em arquivos",
145
+ ]);
146
+ if (isCancel(constraints))
147
+ return undefined;
148
+ const tone = await select({
149
+ message: "tom da resposta",
150
+ options: [
151
+ { value: "concise", label: "Conciso" },
152
+ { value: "detailed", label: "Detalhado" },
153
+ { value: "educational", label: "Educativo" },
154
+ ],
155
+ });
156
+ if (isCancel(tone))
157
+ return undefined;
158
+ const language = await select({
159
+ message: "idioma",
160
+ options: [
161
+ { value: "pt-BR", label: "Português (BR)" },
162
+ { value: "en", label: "English" },
163
+ ],
164
+ });
165
+ if (isCancel(language))
166
+ return undefined;
167
+ const spec = {
168
+ role: role.trim(),
169
+ principles,
170
+ workflow,
171
+ constraints,
172
+ tone: tone,
173
+ language: language,
174
+ };
175
+ return generateGenesisYaml(spec);
176
+ }
177
+ /** Coleta lista de itens (enter vazio termina) */
178
+ async function collectList(message, defaults) {
179
+ const items = [...defaults];
180
+ console.log(dim(message));
181
+ for (const d of defaults)
182
+ console.log(dim(` • ${d}`));
183
+ while (true) {
184
+ const ans = await text({ message: dim(" + "), placeholder: "(enter para terminar)" });
185
+ if (isCancel(ans) || !ans || ans.trim() === "")
186
+ break;
187
+ items.push(ans.trim());
188
+ console.log(dim(` • ${ans.trim()}`));
189
+ }
190
+ return items;
191
+ }
192
+ /** Gera bloco YAML multiline (|) para task.yaml */
193
+ export function generateGenesisYaml(spec) {
194
+ const lines = [
195
+ `Você é um ${spec.role}.`,
196
+ "",
197
+ "## Princípios Invioláveis",
198
+ ...spec.principles.map((p, i) => `${i + 1}. ${p}`),
199
+ "",
200
+ "## Fluxo por Task",
201
+ "```",
202
+ ...spec.workflow,
203
+ "```",
204
+ "",
205
+ "## Constraints (o que NÃO fazer)",
206
+ ...spec.constraints.map(c => `- ${c}`),
207
+ "",
208
+ `Responda em ${spec.language === "pt-BR" ? "PT-BR" : "English"}. Seja ${spec.tone === "concise" ? "conciso" : spec.tone === "detailed" ? "detalhado" : "educativo"}.`,
209
+ ];
210
+ return lines.join("\n");
211
+ }
212
+ /** Confirma destrutivo (TTY). Retorna false se cancelou. */
47
213
  export async function promptConfirmUndeploy(name) {
48
214
  const answer = await confirm({
49
215
  message: `remover o agente ${pc.bold(name)}?`,
@@ -102,4 +268,16 @@ export function parseGateLine(line) {
102
268
  }
103
269
  return undefined;
104
270
  }
271
+ /** Lista templates para `auton template list` */
272
+ export async function listTemplatesForDisplay() {
273
+ const registry = await getTemplateRegistry();
274
+ const templates = await registry.list();
275
+ return templates.map(t => ({
276
+ id: t.id,
277
+ name: t.name,
278
+ category: t.category,
279
+ description: t.description,
280
+ source: t.source,
281
+ }));
282
+ }
105
283
  //# sourceMappingURL=prompts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"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"}