@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.
- package/dist/chat.d.ts +1 -1
- package/dist/chat.js +166 -120
- package/dist/chat.js.map +1 -1
- package/dist/completion.d.ts +2 -0
- package/dist/completion.js +379 -0
- package/dist/completion.js.map +1 -0
- package/dist/config-validation.d.ts +10 -0
- package/dist/config-validation.js +101 -0
- package/dist/config-validation.js.map +1 -0
- package/dist/config.d.ts +9 -3
- package/dist/config.js +23 -11
- package/dist/config.js.map +1 -1
- package/dist/doctor.d.ts +18 -0
- package/dist/doctor.js +409 -0
- package/dist/doctor.js.map +1 -0
- package/dist/errors.d.ts +22 -0
- package/dist/errors.js +60 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.js +304 -119
- package/dist/index.js.map +1 -1
- package/dist/input.d.ts +43 -0
- package/dist/input.js +288 -0
- package/dist/input.js.map +1 -0
- package/dist/llm/factory.d.ts +5 -0
- package/dist/llm/factory.js +54 -0
- package/dist/llm/factory.js.map +1 -0
- package/dist/llm/index.d.ts +9 -0
- package/dist/llm/index.js +11 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/llm/provider.d.ts +27 -0
- package/dist/llm/provider.js +98 -0
- package/dist/llm/provider.js.map +1 -0
- package/dist/llm/providers/anthropic.d.ts +23 -0
- package/dist/llm/providers/anthropic.js +198 -0
- package/dist/llm/providers/anthropic.js.map +1 -0
- package/dist/llm/providers/google.d.ts +31 -0
- package/dist/llm/providers/google.js +190 -0
- package/dist/llm/providers/google.js.map +1 -0
- package/dist/llm/providers/ollama.d.ts +21 -0
- package/dist/llm/providers/ollama.js +157 -0
- package/dist/llm/providers/ollama.js.map +1 -0
- package/dist/llm/providers/openai-compatible.d.ts +22 -0
- package/dist/llm/providers/openai-compatible.js +175 -0
- package/dist/llm/providers/openai-compatible.js.map +1 -0
- package/dist/llm/providers/openai.d.ts +20 -0
- package/dist/llm/providers/openai.js +167 -0
- package/dist/llm/providers/openai.js.map +1 -0
- package/dist/llm/registry.d.ts +19 -0
- package/dist/llm/registry.js +421 -0
- package/dist/llm/registry.js.map +1 -0
- package/dist/llm/types.d.ts +174 -0
- package/dist/llm/types.js +3 -0
- package/dist/llm/types.js.map +1 -0
- package/dist/login.d.ts +1 -1
- package/dist/login.js +14 -14
- package/dist/login.js.map +1 -1
- package/dist/mcp/client.d.ts +36 -0
- package/dist/mcp/client.js +199 -0
- package/dist/mcp/client.js.map +1 -0
- package/dist/mcp/config.d.ts +10 -0
- package/dist/mcp/config.js +43 -0
- package/dist/mcp/config.js.map +1 -0
- package/dist/mcp/index.d.ts +4 -0
- package/dist/mcp/index.js +6 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/types.d.ts +104 -0
- package/dist/mcp/types.js +3 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/model.d.ts +3 -14
- package/dist/model.js +131 -91
- package/dist/model.js.map +1 -1
- package/dist/ollama.d.ts +10 -0
- package/dist/ollama.js +11 -0
- package/dist/ollama.js.map +1 -0
- package/dist/prompts.d.ts +34 -8
- package/dist/prompts.js +186 -8
- package/dist/prompts.js.map +1 -1
- package/dist/repomap.d.ts +37 -0
- package/dist/repomap.js +431 -0
- package/dist/repomap.js.map +1 -0
- package/dist/skills/index.d.ts +3 -0
- package/dist/skills/index.js +5 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/registry.d.ts +16 -0
- package/dist/skills/registry.js +128 -0
- package/dist/skills/registry.js.map +1 -0
- package/dist/skills/types.d.ts +48 -0
- package/dist/skills/types.js +3 -0
- package/dist/skills/types.js.map +1 -0
- package/dist/statusline.d.ts +21 -0
- package/dist/statusline.js +68 -0
- package/dist/statusline.js.map +1 -0
- package/dist/streaming.d.ts +25 -0
- package/dist/streaming.js +91 -0
- package/dist/streaming.js.map +1 -0
- package/dist/task.d.ts +9 -1
- package/dist/task.js +21 -0
- package/dist/task.js.map +1 -1
- package/dist/template-engine.d.ts +19 -0
- package/dist/template-engine.js +187 -0
- package/dist/template-engine.js.map +1 -0
- package/dist/template-registry.d.ts +36 -0
- package/dist/template-registry.js +294 -0
- package/dist/template-registry.js.map +1 -0
- package/dist/theme.d.ts +52 -0
- package/dist/theme.js +92 -0
- package/dist/theme.js.map +1 -0
- package/dist/tools/builtin.d.ts +11 -0
- package/dist/tools/builtin.js +491 -0
- package/dist/tools/builtin.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.js +5 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/types.d.ts +186 -0
- package/dist/tools/types.js +29 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/ui.js +34 -30
- package/dist/ui.js.map +1 -1
- package/dist/verbose.d.ts +20 -0
- package/dist/verbose.js +75 -0
- package/dist/verbose.js.map +1 -0
- package/package.json +12 -2
- package/templates/api-json/task.yaml +0 -2
- package/templates/coding/agent.md +39 -0
- package/templates/coding/agent.ts +83 -0
- package/templates/coding/task.yaml +36 -0
- package/templates/cron-digester/task.yaml +0 -2
- package/templates/harness/agent.md +43 -0
- package/templates/harness/harness.ts +145 -0
- package/templates/harness/task.yaml +4 -0
- package/templates/multi-agent/agent.ts +7 -8
- package/templates/multi-agent/task.yaml +1 -3
- package/templates/research/task.yaml +4 -0
- package/templates/support/task.yaml +0 -2
- package/templates/webhook-echo/task.yaml +0 -2
- package/templates/with-approval/task.yaml +0 -2
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
// completion.ts — `auton completion <bash|zsh|fish>`: gera script de completion.
|
|
2
|
+
// Inclui: subcomandos, model specs, provider ids, task names, file paths.
|
|
3
|
+
const SUBCOMMANDS = [
|
|
4
|
+
"model",
|
|
5
|
+
"model ls",
|
|
6
|
+
"model set",
|
|
7
|
+
"model test",
|
|
8
|
+
"login",
|
|
9
|
+
"logout",
|
|
10
|
+
"chat",
|
|
11
|
+
"agent",
|
|
12
|
+
"ps",
|
|
13
|
+
"logs",
|
|
14
|
+
"status",
|
|
15
|
+
"restart",
|
|
16
|
+
"invoke",
|
|
17
|
+
"approve",
|
|
18
|
+
"reject",
|
|
19
|
+
"answer",
|
|
20
|
+
"context",
|
|
21
|
+
"undeploy",
|
|
22
|
+
"run",
|
|
23
|
+
"wait",
|
|
24
|
+
"result",
|
|
25
|
+
"verify",
|
|
26
|
+
"inspect",
|
|
27
|
+
"continue",
|
|
28
|
+
"init",
|
|
29
|
+
"template list",
|
|
30
|
+
"template create",
|
|
31
|
+
"kv get",
|
|
32
|
+
"kv set",
|
|
33
|
+
"kv ls",
|
|
34
|
+
"env set",
|
|
35
|
+
"env get",
|
|
36
|
+
"env ls",
|
|
37
|
+
"doctor",
|
|
38
|
+
"completion",
|
|
39
|
+
"help",
|
|
40
|
+
"version",
|
|
41
|
+
];
|
|
42
|
+
const GLOBAL_OPTS = ["--help", "-h", "--version", "-v", "--no-auto-cp", "--json"];
|
|
43
|
+
const MODEL_SPECS = [
|
|
44
|
+
"ollama:",
|
|
45
|
+
"openai:",
|
|
46
|
+
"anthropic:",
|
|
47
|
+
"google:",
|
|
48
|
+
"gemini:",
|
|
49
|
+
"groq:",
|
|
50
|
+
"openai-compatible:",
|
|
51
|
+
];
|
|
52
|
+
const PROVIDER_KINDS = ["openai", "anthropic", "google", "openai-compatible", "ollama"];
|
|
53
|
+
function escapeShell(arg) {
|
|
54
|
+
return arg.replace(/([$`"\\])/g, "\\$1");
|
|
55
|
+
}
|
|
56
|
+
function generateBash() {
|
|
57
|
+
return `#!/usr/bin/env bash
|
|
58
|
+
# auton bash completion
|
|
59
|
+
# Source this file: source <(auton completion bash)
|
|
60
|
+
# Or add to ~/.bashrc: eval "$(auton completion bash)"
|
|
61
|
+
|
|
62
|
+
_auton_completions() {
|
|
63
|
+
local cur prev words cword
|
|
64
|
+
_init_completion || return
|
|
65
|
+
|
|
66
|
+
local subcommands=(${SUBCOMMANDS.map((s) => `"${s}"`).join(" ")})
|
|
67
|
+
local global_opts=(${GLOBAL_OPTS.map((s) => `"${s}"`).join(" ")})
|
|
68
|
+
|
|
69
|
+
if [[ \${cword} -eq 1 ]]; then
|
|
70
|
+
COMPREPLY=(\$(compgen -W "\${subcommands[*]} \${global_opts[*]}" -- "\${cur}"))
|
|
71
|
+
return
|
|
72
|
+
fi
|
|
73
|
+
|
|
74
|
+
local cmd="\${words[1]}"
|
|
75
|
+
case "\${cmd}" in
|
|
76
|
+
model)
|
|
77
|
+
if [[ \${cword} -eq 2 ]]; then
|
|
78
|
+
COMPREPLY=(\$(compgen -W "ls set test" -- "\${cur}"))
|
|
79
|
+
elif [[ \${words[2]} == "set" && \${cword} -eq 3 ]]; then
|
|
80
|
+
local specs=($(_auton_model_specs))
|
|
81
|
+
COMPREPLY=(\$(compgen -W "\${specs[*]}" -- "\${cur}"))
|
|
82
|
+
fi
|
|
83
|
+
;;
|
|
84
|
+
login)
|
|
85
|
+
if [[ \${cword} -eq 2 ]]; then
|
|
86
|
+
COMPREPLY=(\$(compgen -W "${PROVIDER_KINDS.join(" ")}" -- "\${cur}"))
|
|
87
|
+
fi
|
|
88
|
+
;;
|
|
89
|
+
logout)
|
|
90
|
+
if [[ \${cword} -eq 2 ]]; then
|
|
91
|
+
local ids=($(_auton_provider_ids))
|
|
92
|
+
COMPREPLY=(\$(compgen -W "\${ids[*]}" -- "\${cur}"))
|
|
93
|
+
fi
|
|
94
|
+
;;
|
|
95
|
+
chat|agent|logs|status|restart|invoke|approve|reject|answer|context|undeploy)
|
|
96
|
+
if [[ \${cword} -eq 2 ]]; then
|
|
97
|
+
local names=($(_auton_agent_names))
|
|
98
|
+
COMPREPLY=(\$(compgen -W "\${names[*]}" -- "\${cur}"))
|
|
99
|
+
fi
|
|
100
|
+
;;
|
|
101
|
+
run|verify|inspect|continue|init)
|
|
102
|
+
if [[ \${cword} -eq 2 ]]; then
|
|
103
|
+
COMPREPLY=(\$(compgen -f -- "\${cur}"))
|
|
104
|
+
fi
|
|
105
|
+
;;
|
|
106
|
+
template)
|
|
107
|
+
if [[ \${cword} -eq 2 ]]; then
|
|
108
|
+
COMPREPLY=(\$(compgen -W "list create" -- "\${cur}"))
|
|
109
|
+
elif [[ \${words[2]} == "create" && \${cword} -eq 3 ]]; then
|
|
110
|
+
COMPREPLY=(\$(compgen -f -- "\${cur}"))
|
|
111
|
+
fi
|
|
112
|
+
;;
|
|
113
|
+
kv)
|
|
114
|
+
if [[ \${cword} -eq 2 ]]; then
|
|
115
|
+
COMPREPLY=(\$(compgen -W "get set ls" -- "\${cur}"))
|
|
116
|
+
elif [[ \${words[2]} == "get" || \${words[2]} == "set" ]] && [[ \${cword} -eq 3 ]]; then
|
|
117
|
+
local names=($(_auton_agent_names))
|
|
118
|
+
COMPREPLY=(\$(compgen -W "\${names[*]}" -- "\${cur}"))
|
|
119
|
+
fi
|
|
120
|
+
;;
|
|
121
|
+
env)
|
|
122
|
+
if [[ \${cword} -eq 2 ]]; then
|
|
123
|
+
COMPREPLY=(\$(compgen -W "set get ls" -- "\${cur}"))
|
|
124
|
+
elif [[ \${words[2]} == "set" || \${words[2]} == "get" ]] && [[ \${cword} -eq 3 ]]; then
|
|
125
|
+
local names=($(_auton_agent_names))
|
|
126
|
+
COMPREPLY=(\$(compgen -W "\${names[*]}" -- "\${cur}"))
|
|
127
|
+
fi
|
|
128
|
+
;;
|
|
129
|
+
completion)
|
|
130
|
+
if [[ \${cword} -eq 2 ]]; then
|
|
131
|
+
COMPREPLY=(\$(compgen -W "bash zsh fish" -- "\${cur}"))
|
|
132
|
+
fi
|
|
133
|
+
;;
|
|
134
|
+
*)
|
|
135
|
+
COMPREPLY=(\$(compgen -W "\${global_opts[*]}" -- "\${cur}"))
|
|
136
|
+
;;
|
|
137
|
+
esac
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
_auton_model_specs() {
|
|
141
|
+
local cfg_file="\${HOME}/.local/share/auton/config.json"
|
|
142
|
+
local specs=()
|
|
143
|
+
|
|
144
|
+
# Ollama local models
|
|
145
|
+
if command -v ollama >/dev/null 2>&1; then
|
|
146
|
+
local tags=\$(ollama list --format "{{.Name}}" 2>/dev/null || true)
|
|
147
|
+
for t in \${tags}; do
|
|
148
|
+
specs+=("ollama:\${t}")
|
|
149
|
+
done
|
|
150
|
+
fi
|
|
151
|
+
|
|
152
|
+
# Configured providers
|
|
153
|
+
if [[ -f \${cfg_file} ]]; then
|
|
154
|
+
local models=\$(jq -r '.providers[]?.model // empty' \${cfg_file} 2>/dev/null || true)
|
|
155
|
+
for m in \${models}; do
|
|
156
|
+
specs+=("\${m}")
|
|
157
|
+
done
|
|
158
|
+
fi
|
|
159
|
+
|
|
160
|
+
# Common prefixes
|
|
161
|
+
specs+=(${MODEL_SPECS.map((s) => `"${s}"`).join(" ")})
|
|
162
|
+
echo "\${specs[@]}"
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
_auton_provider_ids() {
|
|
166
|
+
local cfg_file="\${HOME}/.local/share/auton/config.json"
|
|
167
|
+
if [[ -f \${cfg_file} ]]; then
|
|
168
|
+
jq -r '.providers[]?.id // empty' \${cfg_file} 2>/dev/null || true
|
|
169
|
+
fi
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
_auton_agent_names() {
|
|
173
|
+
local api="\${AUTON_API:-http://localhost:8080}"
|
|
174
|
+
local token="\${AUTON_TOKEN:-}"
|
|
175
|
+
local auth=()
|
|
176
|
+
[[ -n \${token} ]] && auth=(-H "Authorization: Bearer \${token}")
|
|
177
|
+
curl -s \${auth[@]} "\${api}/v1/agents" 2>/dev/null | jq -r '.[].name // empty' 2>/dev/null || true
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
complete -F _auton_completions auton
|
|
181
|
+
`;
|
|
182
|
+
}
|
|
183
|
+
function generateZsh() {
|
|
184
|
+
const subcommands = SUBCOMMANDS.map((s) => `("${s}")`).join(" ");
|
|
185
|
+
const globalOpts = GLOBAL_OPTS.map((s) => `("${s}")`).join(" ");
|
|
186
|
+
const providerKinds = PROVIDER_KINDS.map((s) => `("${s}")`).join(" ");
|
|
187
|
+
const modelSpecs = MODEL_SPECS.map((s) => `("${s}")`).join(" ");
|
|
188
|
+
let out = "";
|
|
189
|
+
out += "#auton zsh completion\n";
|
|
190
|
+
out += "# Source this file: source <(auton completion zsh)\n";
|
|
191
|
+
out += "# Or add to ~/.zshrc: eval \"$(auton completion zsh)\"\n\n";
|
|
192
|
+
out += "# Load completion system\n";
|
|
193
|
+
out += "autoload -Uz compinit && compinit\n\n";
|
|
194
|
+
out += "_auton() {\n";
|
|
195
|
+
out += " local -a subcommands=(" + subcommands + ")\n";
|
|
196
|
+
out += " local -a global_opts=(" + globalOpts + ")\n\n";
|
|
197
|
+
out += " _arguments -C \\\n";
|
|
198
|
+
out += ' "1: :(${subcommands[*]} ${global_opts[*]})" \\\n';
|
|
199
|
+
out += ' "*::arg:->args" && return 0\n\n';
|
|
200
|
+
out += ' case "$words[2]" in\n';
|
|
201
|
+
out += " model)\n";
|
|
202
|
+
out += " _arguments \\\n";
|
|
203
|
+
out += ' "2:subcommand:(ls set test search info pull rm)" \\\n';
|
|
204
|
+
out += ' "3:model spec:($( _auton_model_specs_zsh ))" && return 0\n';
|
|
205
|
+
out += " ;;\n";
|
|
206
|
+
out += " login)\n";
|
|
207
|
+
out += " _arguments \"2:provider:(" + providerKinds + ")\" && return 0\n";
|
|
208
|
+
out += " ;;\n";
|
|
209
|
+
out += " logout)\n";
|
|
210
|
+
out += ' _arguments "2:provider id:($( _auton_provider_ids_zsh ))" && return 0\n';
|
|
211
|
+
out += " ;;\n";
|
|
212
|
+
out += " chat|agent|logs|status|restart|invoke|approve|reject|answer|context|undeploy)\n";
|
|
213
|
+
out += ' _arguments "2:agent name:($( _auton_agent_names_zsh ))" && return 0\n';
|
|
214
|
+
out += " ;;\n";
|
|
215
|
+
out += " run|verify|inspect|continue|init)\n";
|
|
216
|
+
out += ' _arguments "2:directory:_files" && return 0\n';
|
|
217
|
+
out += " ;;\n";
|
|
218
|
+
out += " template)\n";
|
|
219
|
+
out += " _arguments \\\n";
|
|
220
|
+
out += ' "2:subcommand:(list create)" \\\n';
|
|
221
|
+
out += ' "3:template id:_files" && return 0\n';
|
|
222
|
+
out += " ;;\n";
|
|
223
|
+
out += " kv)\n";
|
|
224
|
+
out += " _arguments \\\n";
|
|
225
|
+
out += ' "2:subcommand:(get set ls)" \\\n';
|
|
226
|
+
out += ' "3:agent name:($( _auton_agent_names_zsh ))" && return 0\n';
|
|
227
|
+
out += " ;;\n";
|
|
228
|
+
out += " env)\n";
|
|
229
|
+
out += " _arguments \\\n";
|
|
230
|
+
out += ' "2:subcommand:(set get ls)" \\\n';
|
|
231
|
+
out += ' "3:agent name:($( _auton_agent_names_zsh ))" && return 0\n';
|
|
232
|
+
out += " ;;\n";
|
|
233
|
+
out += " completion)\n";
|
|
234
|
+
out += ' _arguments "2:shell:(bash zsh fish)" && return 0\n';
|
|
235
|
+
out += " ;;\n";
|
|
236
|
+
out += " esac\n";
|
|
237
|
+
out += "}\n\n";
|
|
238
|
+
out += "_auton_model_specs_zsh() {\n";
|
|
239
|
+
out += ' local cfg_file="$HOME/.local/share/auton/config.json"\n';
|
|
240
|
+
out += " local -a specs=()\n\n";
|
|
241
|
+
out += " if (( $+commands[ollama] )); then\n";
|
|
242
|
+
out += ' local tags=(${(f)"$(ollama list --format "{{.Name}}" 2>/dev/null)"})\n';
|
|
243
|
+
out += ' for t in $tags; do specs+=("ollama:$t"); done\n';
|
|
244
|
+
out += " fi\n\n";
|
|
245
|
+
out += " if [[ -f $cfg_file ]]; then\n";
|
|
246
|
+
out += ' local models=(${(f)"$(jq -r \'.providers[]?.model // empty\' $cfg_file 2>/dev/null)"})\n';
|
|
247
|
+
out += ' for m in $models; do specs+=("$m"); done\n';
|
|
248
|
+
out += " fi\n\n";
|
|
249
|
+
out += " specs+=(" + modelSpecs + ")\n";
|
|
250
|
+
out += " echo $specs[@]\n";
|
|
251
|
+
out += "}\n\n";
|
|
252
|
+
out += "_auton_provider_ids_zsh() {\n";
|
|
253
|
+
out += ' local cfg_file="$HOME/.local/share/auton/config.json"\n';
|
|
254
|
+
out += " if [[ -f $cfg_file ]]; then\n";
|
|
255
|
+
out += " jq -r '.providers[]?.id // empty' $cfg_file 2>/dev/null\n";
|
|
256
|
+
out += " fi\n";
|
|
257
|
+
out += "}\n\n";
|
|
258
|
+
out += "_auton_agent_names_zsh() {\n";
|
|
259
|
+
out += ' local api="${AUTON_API:-http://localhost:8080}"\n';
|
|
260
|
+
out += ' local token="${AUTON_TOKEN:-}"\n';
|
|
261
|
+
out += " local auth=()\n";
|
|
262
|
+
out += ' [[ -n $token ]] && auth=(-H "Authorization: Bearer $token")\n';
|
|
263
|
+
out += ' curl -s $auth[@] "$api/v1/agents" 2>/dev/null | jq -r \'.[].name // empty\' 2>/dev/null\n';
|
|
264
|
+
out += "}\n\n";
|
|
265
|
+
out += "compdef _auton auton\n";
|
|
266
|
+
return out;
|
|
267
|
+
}
|
|
268
|
+
function generateFish() {
|
|
269
|
+
const modelSpecs = MODEL_SPECS.map((s) => `"${s}"`).join(" ");
|
|
270
|
+
return `# auton fish completion
|
|
271
|
+
# Source this file: source (auton completion fish | psub)
|
|
272
|
+
# Or add to ~/.config/fish/config.fish: auton completion fish | source
|
|
273
|
+
|
|
274
|
+
function __auton_model_specs
|
|
275
|
+
set -l cfg_file \$HOME/.local/share/auton/config.json
|
|
276
|
+
set -l specs
|
|
277
|
+
|
|
278
|
+
if type -q ollama
|
|
279
|
+
for t in (ollama list --format "{{.Name}}" 2>/dev/null)
|
|
280
|
+
set specs \$specs "ollama:\$t"
|
|
281
|
+
end
|
|
282
|
+
end
|
|
283
|
+
|
|
284
|
+
if test -f \$cfg_file
|
|
285
|
+
for m in (jq -r '.providers[]?.model // empty' \$cfg_file 2>/dev/null)
|
|
286
|
+
set specs \$specs \$m
|
|
287
|
+
end
|
|
288
|
+
end
|
|
289
|
+
|
|
290
|
+
set specs \$specs ${modelSpecs}
|
|
291
|
+
printf '%s\\n' \$specs
|
|
292
|
+
end
|
|
293
|
+
|
|
294
|
+
function __auton_provider_ids
|
|
295
|
+
set -l cfg_file \$HOME/.local/share/auton/config.json
|
|
296
|
+
if test -f \$cfg_file
|
|
297
|
+
jq -r '.providers[]?.id // empty' \$cfg_file 2>/dev/null
|
|
298
|
+
end
|
|
299
|
+
end
|
|
300
|
+
|
|
301
|
+
function __auton_agent_names
|
|
302
|
+
set -l api \$AUTON_API
|
|
303
|
+
set -l token \$AUTON_TOKEN
|
|
304
|
+
if test -z \$api
|
|
305
|
+
set api http://localhost:8080
|
|
306
|
+
end
|
|
307
|
+
set -l auth
|
|
308
|
+
if test -n \$token
|
|
309
|
+
set auth -H "Authorization: Bearer \$token"
|
|
310
|
+
end
|
|
311
|
+
curl -s \$auth \$api/v1/agents 2>/dev/null | jq -r '.[].name // empty' 2>/dev/null
|
|
312
|
+
end
|
|
313
|
+
|
|
314
|
+
complete -c auton -n "__fish_use_subcommand" \\
|
|
315
|
+
-f -a "${SUBCOMMANDS.map((s) => `"${s}"`).join(" ")}" \\
|
|
316
|
+
-a "${GLOBAL_OPTS.map((s) => `"${s}"`).join(" ")}"
|
|
317
|
+
|
|
318
|
+
complete -c auton -n "__fish_seen_subcommand_from model" \\
|
|
319
|
+
-f -a "ls set test"
|
|
320
|
+
|
|
321
|
+
complete -c auton -n "__fish_seen_subcommand_from model; __fish_seen_subcommand_from set" \\
|
|
322
|
+
-f -a "(__auton_model_specs)"
|
|
323
|
+
|
|
324
|
+
complete -c auton -n "__fish_seen_subcommand_from login" \\
|
|
325
|
+
-f -a "${PROVIDER_KINDS.map((s) => `"${s}"`).join(" ")}"
|
|
326
|
+
|
|
327
|
+
complete -c auton -n "__fish_seen_subcommand_from logout" \\
|
|
328
|
+
-f -a "(__auton_provider_ids)"
|
|
329
|
+
|
|
330
|
+
complete -c auton -n "__fish_seen_subcommand_from chat; __fish_seen_subcommand_from agent; __fish_seen_subcommand_from logs; __fish_seen_subcommand_from status; __fish_seen_subcommand_from restart; __fish_seen_subcommand_from invoke; __fish_seen_subcommand_from approve; __fish_seen_subcommand_from reject; __fish_seen_subcommand_from answer; __fish_seen_subcommand_from context; __fish_seen_subcommand_from undeploy" \\
|
|
331
|
+
-f -a "(__auton_agent_names)"
|
|
332
|
+
|
|
333
|
+
complete -c auton -n "__fish_seen_subcommand_from run; __fish_seen_subcommand_from verify; __fish_seen_subcommand_from inspect; __fish_seen_subcommand_from continue; __fish_seen_subcommand_from init" \\
|
|
334
|
+
-f -a "(__auton_complete_paths)"
|
|
335
|
+
|
|
336
|
+
complete -c auton -n "__fish_seen_subcommand_from template" \\
|
|
337
|
+
-f -a "list create"
|
|
338
|
+
|
|
339
|
+
complete -c auton -n "__fish_seen_subcommand_from template; __fish_seen_subcommand_from create" \\
|
|
340
|
+
-f -a "(__auton_complete_paths)"
|
|
341
|
+
|
|
342
|
+
complete -c auton -n "__fish_seen_subcommand_from kv" \\
|
|
343
|
+
-f -a "get set ls"
|
|
344
|
+
|
|
345
|
+
complete -c auton -n "__fish_seen_subcommand_from kv; __fish_seen_subcommand_from get; __fish_seen_subcommand_from kv; __fish_seen_subcommand_from set" \\
|
|
346
|
+
-f -a "(__auton_agent_names)"
|
|
347
|
+
|
|
348
|
+
complete -c auton -n "__fish_seen_subcommand_from env" \\
|
|
349
|
+
-f -a "set get ls"
|
|
350
|
+
|
|
351
|
+
complete -c auton -n "__fish_seen_subcommand_from env; __fish_seen_subcommand_from set; __fish_seen_subcommand_from env; __fish_seen_subcommand_from get" \\
|
|
352
|
+
-f -a "(__auton_agent_names)"
|
|
353
|
+
|
|
354
|
+
complete -c auton -n "__fish_seen_subcommand_from completion" \\
|
|
355
|
+
-f -a "bash zsh fish"
|
|
356
|
+
|
|
357
|
+
function __auton_complete_paths
|
|
358
|
+
# Complete files and directories
|
|
359
|
+
complete -C'commandline -cp' -f
|
|
360
|
+
end
|
|
361
|
+
`;
|
|
362
|
+
}
|
|
363
|
+
export async function generateCompletion(shell) {
|
|
364
|
+
switch (shell) {
|
|
365
|
+
case "bash":
|
|
366
|
+
return generateBash();
|
|
367
|
+
case "zsh":
|
|
368
|
+
return generateZsh();
|
|
369
|
+
case "fish":
|
|
370
|
+
return generateFish();
|
|
371
|
+
default:
|
|
372
|
+
throw new Error(`Shell não suportado: ${shell}. Use: bash, zsh, fish`);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
export async function cmdCompletion(shell) {
|
|
376
|
+
const script = await generateCompletion(shell);
|
|
377
|
+
console.log(script);
|
|
378
|
+
}
|
|
379
|
+
//# sourceMappingURL=completion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { AutonConfig } from "./config.js";
|
|
3
|
+
export declare const AutonConfigSchema: z.ZodType<AutonConfig>;
|
|
4
|
+
export declare function validateConfig(cfg: unknown): {
|
|
5
|
+
valid: boolean;
|
|
6
|
+
errors: string[];
|
|
7
|
+
};
|
|
8
|
+
export declare function migrateConfig(oldCfg: unknown): AutonConfig;
|
|
9
|
+
export declare function secretScan(cfg: AutonConfig): string[];
|
|
10
|
+
export declare function enforceStrictSecrets(warnings: string[]): void;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
// config-validation.ts — Zod schema + validação + migração + secret scan.
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
const ProviderKindSchema = z.enum(["openai", "anthropic", "google", "openai-compatible", "ollama"]);
|
|
4
|
+
const ConfigProviderSchema = z.object({
|
|
5
|
+
id: z.string().min(1),
|
|
6
|
+
label: z.string().min(1),
|
|
7
|
+
kind: ProviderKindSchema,
|
|
8
|
+
model: z.string().min(1),
|
|
9
|
+
apiKey: z.string().optional(),
|
|
10
|
+
baseUrl: z.string().url().optional(),
|
|
11
|
+
customHeaders: z.record(z.string()).optional(),
|
|
12
|
+
oauthLoginKey: z.string().optional(),
|
|
13
|
+
maxTokens: z.number().int().positive().optional(),
|
|
14
|
+
parseThinkTags: z.boolean().optional(),
|
|
15
|
+
keyVar: z.string().optional(),
|
|
16
|
+
baseEnv: z.string().optional(),
|
|
17
|
+
quando: z.string().datetime({ offset: true }),
|
|
18
|
+
});
|
|
19
|
+
export const AutonConfigSchema = z.object({
|
|
20
|
+
defaultModel: z.string(),
|
|
21
|
+
providers: z.array(ConfigProviderSchema),
|
|
22
|
+
});
|
|
23
|
+
export function validateConfig(cfg) {
|
|
24
|
+
const result = AutonConfigSchema.safeParse(cfg);
|
|
25
|
+
if (result.success)
|
|
26
|
+
return { valid: true, errors: [] };
|
|
27
|
+
const errors = result.error.issues.map((i) => `${i.path.join(".")}: ${i.message}`);
|
|
28
|
+
return { valid: false, errors };
|
|
29
|
+
}
|
|
30
|
+
export function migrateConfig(oldCfg) {
|
|
31
|
+
const raw = oldCfg;
|
|
32
|
+
// v0.15: oauth.json shape — handled in config.ts migrateLegacy()
|
|
33
|
+
// v0.17: config.json sem "kind" — assume openai-compatible
|
|
34
|
+
if (Array.isArray(raw.providers)) {
|
|
35
|
+
const providers = raw.providers.map((p) => {
|
|
36
|
+
const provider = p;
|
|
37
|
+
let kind = provider.kind;
|
|
38
|
+
if (!kind && provider.model) {
|
|
39
|
+
const model = String(provider.model);
|
|
40
|
+
if (model.startsWith("ollama:"))
|
|
41
|
+
kind = "ollama";
|
|
42
|
+
else if (model.startsWith("gemini:") || model.startsWith("google:"))
|
|
43
|
+
kind = "google";
|
|
44
|
+
else if (model.startsWith("anthropic:"))
|
|
45
|
+
kind = "anthropic";
|
|
46
|
+
else if (model.startsWith("openai:"))
|
|
47
|
+
kind = "openai";
|
|
48
|
+
else
|
|
49
|
+
kind = "openai-compatible";
|
|
50
|
+
}
|
|
51
|
+
const resolvedKind = (kind ?? "openai-compatible");
|
|
52
|
+
return {
|
|
53
|
+
id: String(provider.id ?? ""),
|
|
54
|
+
label: String(provider.label ?? ""),
|
|
55
|
+
kind: resolvedKind,
|
|
56
|
+
model: String(provider.model ?? ""),
|
|
57
|
+
apiKey: provider.apiKey,
|
|
58
|
+
baseUrl: provider.baseUrl,
|
|
59
|
+
customHeaders: provider.customHeaders,
|
|
60
|
+
oauthLoginKey: provider.oauthLoginKey,
|
|
61
|
+
maxTokens: provider.maxTokens,
|
|
62
|
+
parseThinkTags: provider.parseThinkTags,
|
|
63
|
+
keyVar: provider.keyVar,
|
|
64
|
+
baseEnv: provider.baseEnv,
|
|
65
|
+
quando: String(provider.quando ?? new Date().toISOString()),
|
|
66
|
+
};
|
|
67
|
+
});
|
|
68
|
+
return { defaultModel: String(raw.defaultModel ?? ""), providers };
|
|
69
|
+
}
|
|
70
|
+
return { defaultModel: "", providers: [] };
|
|
71
|
+
}
|
|
72
|
+
const SECRET_PATTERNS = [
|
|
73
|
+
[/sk-[a-zA-Z0-9]{20,}/, "OpenAI API key"],
|
|
74
|
+
[/sk-ant-[a-zA-Z0-9\-_]{20,}/, "Anthropic API key"],
|
|
75
|
+
[/gsk_[a-zA-Z0-9]{20,}/, "Groq API key"],
|
|
76
|
+
[/xai-[a-zA-Z0-9]{20,}/, "xAI API key"],
|
|
77
|
+
[/AIza[a-zA-Z0-9\-_]{20,}/, "Google API key"],
|
|
78
|
+
[/ghp_[a-zA-Z0-9]{20,}/, "GitHub PAT"],
|
|
79
|
+
[/gho_[a-zA-Z0-9]{20,}/, "GitHub OAuth token"],
|
|
80
|
+
[/glpat-[a-zA-Z0-9\-_]{20,}/, "GitLab PAT"],
|
|
81
|
+
];
|
|
82
|
+
export function secretScan(cfg) {
|
|
83
|
+
const warnings = [];
|
|
84
|
+
for (const p of cfg.providers) {
|
|
85
|
+
if (p.apiKey) {
|
|
86
|
+
for (const [pattern, label] of SECRET_PATTERNS) {
|
|
87
|
+
if (pattern.test(p.apiKey)) {
|
|
88
|
+
warnings.push(`${label} detectado no provider "${p.id}" — evite commitar config.json`);
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return warnings;
|
|
95
|
+
}
|
|
96
|
+
export function enforceStrictSecrets(warnings) {
|
|
97
|
+
if (process.env.AUTON_STRICT_SECRETS === "1" && warnings.length > 0) {
|
|
98
|
+
throw new Error(`secrets detectados no config (AUTON_STRICT_SECRETS=1):\n${warnings.join("\n")}`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=config-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-validation.js","sourceRoot":"","sources":["../src/config-validation.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
|
+
import type { ProviderKind } from "./llm/types.js";
|
|
2
|
+
export declare const AUTON_DIR: string;
|
|
1
3
|
export interface ConfigProvider {
|
|
2
4
|
id: string;
|
|
3
5
|
label: string;
|
|
4
|
-
|
|
6
|
+
kind: ProviderKind;
|
|
5
7
|
model: string;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
+
apiKey?: string;
|
|
9
|
+
baseUrl?: string;
|
|
10
|
+
customHeaders?: Record<string, string>;
|
|
11
|
+
oauthLoginKey?: string;
|
|
12
|
+
maxTokens?: number;
|
|
13
|
+
parseThinkTags?: boolean;
|
|
8
14
|
keyVar?: string;
|
|
9
15
|
baseEnv?: string;
|
|
10
16
|
quando: string;
|
package/dist/config.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// config.ts — config global do CLI (estilo ollama: ~/.local/share/auton/).
|
|
2
|
-
// 0.
|
|
3
|
-
// config.json não existe, lê oauth.json antigo (1 provider só).
|
|
2
|
+
// 0.20: provider abstraction + model registry + MCP + skills. Compat legado.
|
|
4
3
|
import { mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
5
4
|
import { join } from "node:path";
|
|
6
5
|
import { homedir } from "node:os";
|
|
7
|
-
|
|
6
|
+
import { validateConfig, migrateConfig, secretScan, enforceStrictSecrets } from "./config-validation.js";
|
|
7
|
+
export const AUTON_DIR = join(homedir(), ".local", "share", "auton");
|
|
8
8
|
const CONFIG_FILE = join(AUTON_DIR, "config.json");
|
|
9
9
|
const LEGACY_OAUTH = join(AUTON_DIR, "oauth.json");
|
|
10
10
|
export function configPath() {
|
|
@@ -13,10 +13,16 @@ export function configPath() {
|
|
|
13
13
|
export function loadConfig() {
|
|
14
14
|
try {
|
|
15
15
|
const raw = JSON.parse(readFileSync(CONFIG_FILE, "utf8"));
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
const migrated = migrateConfig(raw);
|
|
17
|
+
const { valid, errors } = validateConfig(migrated);
|
|
18
|
+
if (!valid) {
|
|
19
|
+
throw new Error(`config inválido: ${errors.join(", ")}`);
|
|
20
|
+
}
|
|
21
|
+
const warnings = secretScan(migrated);
|
|
22
|
+
enforceStrictSecrets(warnings);
|
|
23
|
+
for (const w of warnings)
|
|
24
|
+
console.error(`⚠ ${w}`);
|
|
25
|
+
return migrated;
|
|
20
26
|
}
|
|
21
27
|
catch {
|
|
22
28
|
return migrateLegacy();
|
|
@@ -28,13 +34,14 @@ function migrateLegacy() {
|
|
|
28
34
|
const legacy = JSON.parse(readFileSync(LEGACY_OAUTH, "utf8"));
|
|
29
35
|
if (!legacy.model)
|
|
30
36
|
return { defaultModel: "", providers: [] };
|
|
37
|
+
const kind = legacy.provider === "gemini" ? "google" : legacy.provider === "ollama" ? "ollama" : "openai-compatible";
|
|
31
38
|
const provider = {
|
|
32
39
|
id: legacy.provider === "gemini" ? "gemini-free" : legacy.provider === "ollama" ? "ollama-local" : "custom",
|
|
33
40
|
label: legacy.model,
|
|
34
|
-
|
|
41
|
+
kind,
|
|
35
42
|
model: legacy.model,
|
|
36
|
-
|
|
37
|
-
|
|
43
|
+
apiKey: legacy.key,
|
|
44
|
+
baseUrl: legacy.base,
|
|
38
45
|
quando: legacy.quando ?? new Date().toISOString(),
|
|
39
46
|
};
|
|
40
47
|
const cfg = { defaultModel: legacy.model, providers: [provider] };
|
|
@@ -53,6 +60,11 @@ function migrateLegacy() {
|
|
|
53
60
|
}
|
|
54
61
|
}
|
|
55
62
|
export function saveConfig(cfg) {
|
|
63
|
+
const { valid, errors } = validateConfig(cfg);
|
|
64
|
+
if (!valid)
|
|
65
|
+
throw new Error(`config inválido: ${errors.join(", ")}`);
|
|
66
|
+
const warnings = secretScan(cfg);
|
|
67
|
+
enforceStrictSecrets(warnings);
|
|
56
68
|
mkdirSync(AUTON_DIR, { recursive: true });
|
|
57
69
|
writeFileSync(CONFIG_FILE, JSON.stringify(cfg, null, 2) + "\n");
|
|
58
70
|
// G7: chmod 600 — credenciais em plaintext — apenas dono pode ler
|
|
@@ -64,7 +76,7 @@ export function saveConfig(cfg) {
|
|
|
64
76
|
}
|
|
65
77
|
}
|
|
66
78
|
export function getDefaultModel() {
|
|
67
|
-
return loadConfig().defaultModel;
|
|
79
|
+
return loadConfig().defaultModel || "mock:local";
|
|
68
80
|
}
|
|
69
81
|
export function setDefaultModel(spec) {
|
|
70
82
|
const cfg = loadConfig();
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/doctor.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface DoctorCheck {
|
|
2
|
+
name: string;
|
|
3
|
+
category: "config" | "credentials" | "ollama" | "mcp" | "sandbox" | "disk" | "node" | "go";
|
|
4
|
+
status: "pass" | "warn" | "fail";
|
|
5
|
+
message: string;
|
|
6
|
+
fix?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface DoctorReport {
|
|
9
|
+
checks: DoctorCheck[];
|
|
10
|
+
summary: {
|
|
11
|
+
pass: number;
|
|
12
|
+
warn: number;
|
|
13
|
+
fail: number;
|
|
14
|
+
};
|
|
15
|
+
exitCode: 0 | 1 | 2;
|
|
16
|
+
}
|
|
17
|
+
export declare function runDoctor(json?: boolean): Promise<DoctorReport>;
|
|
18
|
+
export declare function cmdDoctor(json: boolean): Promise<void>;
|