agent-media-cli 1.0.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/LICENSE +199 -0
- package/README.md +59 -0
- package/dist/commands/alias.d.ts +3 -0
- package/dist/commands/alias.d.ts.map +1 -0
- package/dist/commands/alias.js +245 -0
- package/dist/commands/alias.js.map +1 -0
- package/dist/commands/apikey.d.ts +3 -0
- package/dist/commands/apikey.d.ts.map +1 -0
- package/dist/commands/apikey.js +282 -0
- package/dist/commands/apikey.js.map +1 -0
- package/dist/commands/cancel.d.ts +9 -0
- package/dist/commands/cancel.d.ts.map +1 -0
- package/dist/commands/cancel.js +101 -0
- package/dist/commands/cancel.js.map +1 -0
- package/dist/commands/completions.d.ts +15 -0
- package/dist/commands/completions.d.ts.map +1 -0
- package/dist/commands/completions.js +293 -0
- package/dist/commands/completions.js.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +327 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/credits.d.ts +18 -0
- package/dist/commands/credits.d.ts.map +1 -0
- package/dist/commands/credits.js +459 -0
- package/dist/commands/credits.js.map +1 -0
- package/dist/commands/debug.d.ts +20 -0
- package/dist/commands/debug.d.ts.map +1 -0
- package/dist/commands/debug.js +291 -0
- package/dist/commands/debug.js.map +1 -0
- package/dist/commands/delete.d.ts +3 -0
- package/dist/commands/delete.d.ts.map +1 -0
- package/dist/commands/delete.js +273 -0
- package/dist/commands/delete.js.map +1 -0
- package/dist/commands/doctor.d.ts +14 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +468 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/download.d.ts +3 -0
- package/dist/commands/download.d.ts.map +1 -0
- package/dist/commands/download.js +165 -0
- package/dist/commands/download.js.map +1 -0
- package/dist/commands/generate.d.ts +3 -0
- package/dist/commands/generate.d.ts.map +1 -0
- package/dist/commands/generate.js +358 -0
- package/dist/commands/generate.js.map +1 -0
- package/dist/commands/inspect.d.ts +10 -0
- package/dist/commands/inspect.d.ts.map +1 -0
- package/dist/commands/inspect.js +376 -0
- package/dist/commands/inspect.js.map +1 -0
- package/dist/commands/list.d.ts +13 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +198 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/login.d.ts +15 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +123 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +12 -0
- package/dist/commands/logout.d.ts.map +1 -0
- package/dist/commands/logout.js +85 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/models.d.ts +10 -0
- package/dist/commands/models.d.ts.map +1 -0
- package/dist/commands/models.js +137 -0
- package/dist/commands/models.js.map +1 -0
- package/dist/commands/plan.d.ts +13 -0
- package/dist/commands/plan.d.ts.map +1 -0
- package/dist/commands/plan.js +134 -0
- package/dist/commands/plan.js.map +1 -0
- package/dist/commands/pricing.d.ts +14 -0
- package/dist/commands/pricing.d.ts.map +1 -0
- package/dist/commands/pricing.js +166 -0
- package/dist/commands/pricing.js.map +1 -0
- package/dist/commands/profile.d.ts +9 -0
- package/dist/commands/profile.d.ts.map +1 -0
- package/dist/commands/profile.js +236 -0
- package/dist/commands/profile.js.map +1 -0
- package/dist/commands/retry.d.ts +3 -0
- package/dist/commands/retry.d.ts.map +1 -0
- package/dist/commands/retry.js +424 -0
- package/dist/commands/retry.js.map +1 -0
- package/dist/commands/status.d.ts +9 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +182 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/subscribe.d.ts +3 -0
- package/dist/commands/subscribe.d.ts.map +1 -0
- package/dist/commands/subscribe.js +263 -0
- package/dist/commands/subscribe.js.map +1 -0
- package/dist/commands/text.d.ts +3 -0
- package/dist/commands/text.d.ts.map +1 -0
- package/dist/commands/text.js +263 -0
- package/dist/commands/text.js.map +1 -0
- package/dist/commands/update.d.ts +13 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +211 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/usage.d.ts +13 -0
- package/dist/commands/usage.d.ts.map +1 -0
- package/dist/commands/usage.js +344 -0
- package/dist/commands/usage.js.map +1 -0
- package/dist/commands/version.d.ts +8 -0
- package/dist/commands/version.d.ts.map +1 -0
- package/dist/commands/version.js +26 -0
- package/dist/commands/version.js.map +1 -0
- package/dist/commands/whoami.d.ts +9 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +76 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +85 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/api.d.ts +518 -0
- package/dist/lib/api.d.ts.map +1 -0
- package/dist/lib/api.js +582 -0
- package/dist/lib/api.js.map +1 -0
- package/dist/lib/config.d.ts +33 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +91 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/credentials.d.ts +60 -0
- package/dist/lib/credentials.d.ts.map +1 -0
- package/dist/lib/credentials.js +152 -0
- package/dist/lib/credentials.js.map +1 -0
- package/dist/lib/errors.d.ts +20 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +77 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/output.d.ts +33 -0
- package/dist/lib/output.d.ts.map +1 -0
- package/dist/lib/output.js +77 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/types.d.ts +12 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
// Copyright 2026 agent-media contributors. Apache-2.0 license.
|
|
2
|
+
import { CLIError, handleError } from '../lib/errors.js';
|
|
3
|
+
/** All registered command names (used in completion scripts). */
|
|
4
|
+
const COMMANDS = [
|
|
5
|
+
'alias',
|
|
6
|
+
'apikey',
|
|
7
|
+
'cancel',
|
|
8
|
+
'completions',
|
|
9
|
+
'config',
|
|
10
|
+
'credits',
|
|
11
|
+
'debug',
|
|
12
|
+
'delete',
|
|
13
|
+
'doctor',
|
|
14
|
+
'download',
|
|
15
|
+
'generate',
|
|
16
|
+
'inspect',
|
|
17
|
+
'list',
|
|
18
|
+
'login',
|
|
19
|
+
'logout',
|
|
20
|
+
'models',
|
|
21
|
+
'plan',
|
|
22
|
+
'pricing',
|
|
23
|
+
'profile',
|
|
24
|
+
'retry',
|
|
25
|
+
'status',
|
|
26
|
+
'subscribe',
|
|
27
|
+
'text',
|
|
28
|
+
'update',
|
|
29
|
+
'usage',
|
|
30
|
+
'version',
|
|
31
|
+
'whoami',
|
|
32
|
+
];
|
|
33
|
+
/** Global option flags available on all commands. */
|
|
34
|
+
const GLOBAL_FLAGS = [
|
|
35
|
+
'--json',
|
|
36
|
+
'--quiet',
|
|
37
|
+
'--no-color',
|
|
38
|
+
'--verbose',
|
|
39
|
+
'--profile',
|
|
40
|
+
'--help',
|
|
41
|
+
'--version',
|
|
42
|
+
];
|
|
43
|
+
/**
|
|
44
|
+
* Generate a Bash completion script.
|
|
45
|
+
*/
|
|
46
|
+
function generateBash() {
|
|
47
|
+
const cmds = COMMANDS.join(' ');
|
|
48
|
+
const flags = GLOBAL_FLAGS.join(' ');
|
|
49
|
+
return `# agent-media bash completion
|
|
50
|
+
# Generated by: agent-media completions bash
|
|
51
|
+
# Add to ~/.bashrc or ~/.bash_profile:
|
|
52
|
+
# eval "$(agent-media completions bash)"
|
|
53
|
+
|
|
54
|
+
_agent_media_completions() {
|
|
55
|
+
local cur prev commands global_flags
|
|
56
|
+
COMPREPLY=()
|
|
57
|
+
cur="\${COMP_WORDS[COMP_CWORD]}"
|
|
58
|
+
prev="\${COMP_WORDS[COMP_CWORD-1]}"
|
|
59
|
+
|
|
60
|
+
commands="${cmds}"
|
|
61
|
+
global_flags="${flags}"
|
|
62
|
+
|
|
63
|
+
# Complete subcommands when at position 1
|
|
64
|
+
if [[ \${COMP_CWORD} -eq 1 ]]; then
|
|
65
|
+
COMPREPLY=( $(compgen -W "\${commands}" -- "\${cur}") )
|
|
66
|
+
return 0
|
|
67
|
+
fi
|
|
68
|
+
|
|
69
|
+
# Complete global flags
|
|
70
|
+
if [[ "\${cur}" == -* ]]; then
|
|
71
|
+
COMPREPLY=( $(compgen -W "\${global_flags}" -- "\${cur}") )
|
|
72
|
+
return 0
|
|
73
|
+
fi
|
|
74
|
+
|
|
75
|
+
# Command-specific completions
|
|
76
|
+
case "\${COMP_WORDS[1]}" in
|
|
77
|
+
completions)
|
|
78
|
+
COMPREPLY=( $(compgen -W "bash zsh fish" -- "\${cur}") )
|
|
79
|
+
;;
|
|
80
|
+
config)
|
|
81
|
+
if [[ \${COMP_CWORD} -eq 2 ]]; then
|
|
82
|
+
COMPREPLY=( $(compgen -W "get set list reset export import" -- "\${cur}") )
|
|
83
|
+
elif [[ \${COMP_CWORD} -eq 3 && ("\${prev}" == "get" || "\${prev}" == "set") ]]; then
|
|
84
|
+
COMPREPLY=( $(compgen -W "api_url output_format default_model auto_open_browser download_dir" -- "\${cur}") )
|
|
85
|
+
fi
|
|
86
|
+
;;
|
|
87
|
+
credits)
|
|
88
|
+
if [[ \${COMP_CWORD} -eq 2 ]]; then
|
|
89
|
+
COMPREPLY=( $(compgen -W "estimate history topup" -- "\${cur}") )
|
|
90
|
+
fi
|
|
91
|
+
;;
|
|
92
|
+
generate)
|
|
93
|
+
if [[ \${COMP_CWORD} -eq 2 ]]; then
|
|
94
|
+
COMPREPLY=( $(compgen -W "seedance1.5 flux2-pro kling3.0" -- "\${cur}") )
|
|
95
|
+
fi
|
|
96
|
+
;;
|
|
97
|
+
apikey)
|
|
98
|
+
if [[ \${COMP_CWORD} -eq 2 ]]; then
|
|
99
|
+
COMPREPLY=( $(compgen -W "list create revoke" -- "\${cur}") )
|
|
100
|
+
fi
|
|
101
|
+
;;
|
|
102
|
+
profile)
|
|
103
|
+
if [[ \${COMP_CWORD} -eq 2 ]]; then
|
|
104
|
+
COMPREPLY=( $(compgen -W "list use delete export" -- "\${cur}") )
|
|
105
|
+
fi
|
|
106
|
+
;;
|
|
107
|
+
alias)
|
|
108
|
+
if [[ \${COMP_CWORD} -eq 2 ]]; then
|
|
109
|
+
COMPREPLY=( $(compgen -W "set remove list" -- "\${cur}") )
|
|
110
|
+
fi
|
|
111
|
+
;;
|
|
112
|
+
esac
|
|
113
|
+
|
|
114
|
+
return 0
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
complete -F _agent_media_completions agent-media
|
|
118
|
+
`;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Generate a Zsh completion script.
|
|
122
|
+
*/
|
|
123
|
+
function generateZsh() {
|
|
124
|
+
const cmdLines = COMMANDS.map((cmd) => ` '${cmd}:${cmd} command'`).join(' \\\n');
|
|
125
|
+
return `#compdef agent-media
|
|
126
|
+
|
|
127
|
+
# agent-media zsh completion
|
|
128
|
+
# Generated by: agent-media completions zsh
|
|
129
|
+
# Add to ~/.zshrc:
|
|
130
|
+
# eval "$(agent-media completions zsh)"
|
|
131
|
+
# Or save to a file in your $fpath:
|
|
132
|
+
# agent-media completions zsh > ~/.zsh/completions/_agent-media
|
|
133
|
+
|
|
134
|
+
_agent-media() {
|
|
135
|
+
local -a commands
|
|
136
|
+
commands=(
|
|
137
|
+
${cmdLines}
|
|
138
|
+
)
|
|
139
|
+
|
|
140
|
+
local -a global_flags
|
|
141
|
+
global_flags=(
|
|
142
|
+
'--json[Output as JSON]'
|
|
143
|
+
'--quiet[Minimal output]'
|
|
144
|
+
'--no-color[Disable colored output]'
|
|
145
|
+
'--verbose[Show debug output]'
|
|
146
|
+
'--profile[Use a specific credential profile]:profile name'
|
|
147
|
+
'--help[Show help]'
|
|
148
|
+
'--version[Show version]'
|
|
149
|
+
)
|
|
150
|
+
|
|
151
|
+
_arguments -C \\
|
|
152
|
+
'1:command:->command' \\
|
|
153
|
+
'*::arg:->args' \\
|
|
154
|
+
\${global_flags}
|
|
155
|
+
|
|
156
|
+
case "\$state" in
|
|
157
|
+
command)
|
|
158
|
+
_describe -t commands 'agent-media command' commands
|
|
159
|
+
;;
|
|
160
|
+
args)
|
|
161
|
+
case "\$words[1]" in
|
|
162
|
+
completions)
|
|
163
|
+
_values 'shell' bash zsh fish
|
|
164
|
+
;;
|
|
165
|
+
config)
|
|
166
|
+
local -a config_subcmds
|
|
167
|
+
config_subcmds=(get set list reset export import)
|
|
168
|
+
if (( CURRENT == 2 )); then
|
|
169
|
+
_describe -t subcommands 'config subcommand' config_subcmds
|
|
170
|
+
elif (( CURRENT == 3 )) && [[ "\$words[2]" == (get|set) ]]; then
|
|
171
|
+
local -a config_keys
|
|
172
|
+
config_keys=(api_url output_format default_model auto_open_browser download_dir)
|
|
173
|
+
_describe -t keys 'config key' config_keys
|
|
174
|
+
fi
|
|
175
|
+
;;
|
|
176
|
+
credits)
|
|
177
|
+
local -a credits_subcmds
|
|
178
|
+
credits_subcmds=(estimate history topup)
|
|
179
|
+
_describe -t subcommands 'credits subcommand' credits_subcmds
|
|
180
|
+
;;
|
|
181
|
+
generate)
|
|
182
|
+
if (( CURRENT == 2 )); then
|
|
183
|
+
local -a models
|
|
184
|
+
models=(seedance1.5 flux2-pro kling3.0)
|
|
185
|
+
_describe -t models 'model' models
|
|
186
|
+
fi
|
|
187
|
+
;;
|
|
188
|
+
apikey)
|
|
189
|
+
local -a apikey_subcmds
|
|
190
|
+
apikey_subcmds=(list create revoke)
|
|
191
|
+
_describe -t subcommands 'apikey subcommand' apikey_subcmds
|
|
192
|
+
;;
|
|
193
|
+
profile)
|
|
194
|
+
local -a profile_subcmds
|
|
195
|
+
profile_subcmds=(list use delete export)
|
|
196
|
+
_describe -t subcommands 'profile subcommand' profile_subcmds
|
|
197
|
+
;;
|
|
198
|
+
alias)
|
|
199
|
+
local -a alias_subcmds
|
|
200
|
+
alias_subcmds=(set remove list)
|
|
201
|
+
_describe -t subcommands 'alias subcommand' alias_subcmds
|
|
202
|
+
;;
|
|
203
|
+
download|status|inspect|cancel|retry|delete)
|
|
204
|
+
_message 'job ID'
|
|
205
|
+
;;
|
|
206
|
+
esac
|
|
207
|
+
;;
|
|
208
|
+
esac
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
_agent-media "\$@"
|
|
212
|
+
`;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Generate a Fish completion script.
|
|
216
|
+
*/
|
|
217
|
+
function generateFish() {
|
|
218
|
+
const cmdCompletions = COMMANDS.map((cmd) => `complete -c agent-media -n "__fish_use_subcommand" -a "${cmd}" -d "${cmd} command"`).join('\n');
|
|
219
|
+
return `# agent-media fish completion
|
|
220
|
+
# Generated by: agent-media completions fish
|
|
221
|
+
# Save to: ~/.config/fish/completions/agent-media.fish
|
|
222
|
+
|
|
223
|
+
# Disable file completions by default
|
|
224
|
+
complete -c agent-media -f
|
|
225
|
+
|
|
226
|
+
# Global flags
|
|
227
|
+
complete -c agent-media -l json -d "Output as JSON"
|
|
228
|
+
complete -c agent-media -l quiet -d "Minimal output"
|
|
229
|
+
complete -c agent-media -l no-color -d "Disable colored output"
|
|
230
|
+
complete -c agent-media -l verbose -d "Show debug output"
|
|
231
|
+
complete -c agent-media -l profile -d "Use a specific credential profile" -x
|
|
232
|
+
complete -c agent-media -l help -d "Show help"
|
|
233
|
+
complete -c agent-media -l version -d "Show version"
|
|
234
|
+
|
|
235
|
+
# Subcommands
|
|
236
|
+
${cmdCompletions}
|
|
237
|
+
|
|
238
|
+
# completions subcommand
|
|
239
|
+
complete -c agent-media -n "__fish_seen_subcommand_from completions" -a "bash zsh fish" -d "Shell type"
|
|
240
|
+
|
|
241
|
+
# config subcommand
|
|
242
|
+
complete -c agent-media -n "__fish_seen_subcommand_from config" -a "get set list reset export import" -d "Config action"
|
|
243
|
+
|
|
244
|
+
# credits subcommand
|
|
245
|
+
complete -c agent-media -n "__fish_seen_subcommand_from credits" -a "estimate history topup" -d "Credits action"
|
|
246
|
+
|
|
247
|
+
# generate subcommand - model names
|
|
248
|
+
complete -c agent-media -n "__fish_seen_subcommand_from generate" -a "seedance1.5 flux2-pro kling3.0" -d "Model"
|
|
249
|
+
|
|
250
|
+
# apikey subcommand
|
|
251
|
+
complete -c agent-media -n "__fish_seen_subcommand_from apikey" -a "list create revoke" -d "API key action"
|
|
252
|
+
|
|
253
|
+
# profile subcommand
|
|
254
|
+
complete -c agent-media -n "__fish_seen_subcommand_from profile" -a "list use delete export" -d "Profile action"
|
|
255
|
+
|
|
256
|
+
# alias subcommand
|
|
257
|
+
complete -c agent-media -n "__fish_seen_subcommand_from alias" -a "set remove list" -d "Alias action"
|
|
258
|
+
`;
|
|
259
|
+
}
|
|
260
|
+
export function registerCompletionsCommand(program) {
|
|
261
|
+
program
|
|
262
|
+
.command('completions <shell>')
|
|
263
|
+
.description('Generate shell completion scripts\n\n' +
|
|
264
|
+
'Usage:\n' +
|
|
265
|
+
' agent-media completions bash >> ~/.bashrc\n' +
|
|
266
|
+
' agent-media completions zsh >> ~/.zshrc\n' +
|
|
267
|
+
' agent-media completions fish > ~/.config/fish/completions/agent-media.fish')
|
|
268
|
+
.action((shell) => {
|
|
269
|
+
try {
|
|
270
|
+
const shellLower = shell.toLowerCase();
|
|
271
|
+
switch (shellLower) {
|
|
272
|
+
case 'bash':
|
|
273
|
+
process.stdout.write(generateBash());
|
|
274
|
+
break;
|
|
275
|
+
case 'zsh':
|
|
276
|
+
process.stdout.write(generateZsh());
|
|
277
|
+
break;
|
|
278
|
+
case 'fish':
|
|
279
|
+
process.stdout.write(generateFish());
|
|
280
|
+
break;
|
|
281
|
+
default:
|
|
282
|
+
throw new CLIError(`Unsupported shell: "${shell}"`, {
|
|
283
|
+
code: 'UNSUPPORTED_SHELL',
|
|
284
|
+
suggestion: 'Supported shells: bash, zsh, fish',
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
catch (error) {
|
|
289
|
+
handleError(error);
|
|
290
|
+
}
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
//# sourceMappingURL=completions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completions.js","sourceRoot":"","sources":["../../src/commands/completions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkV5D"}
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
// Copyright 2026 agent-media contributors. Apache-2.0 license.
|
|
2
|
+
/**
|
|
3
|
+
* `agent-media config` command.
|
|
4
|
+
*
|
|
5
|
+
* Manages CLI configuration stored at ~/.agent-media/config.json.
|
|
6
|
+
* Supports get, set, list, and reset subcommands for controlling
|
|
7
|
+
* default behavior of the CLI.
|
|
8
|
+
*
|
|
9
|
+
* Supported keys:
|
|
10
|
+
* - api_url: Supabase Edge Functions URL
|
|
11
|
+
* - output_format: default output format (human/json/quiet)
|
|
12
|
+
* - default_model: default model for generate command
|
|
13
|
+
* - auto_open_browser: whether to auto-open browser on login (default: true)
|
|
14
|
+
* - download_dir: default download directory
|
|
15
|
+
*/
|
|
16
|
+
import { readFileSync } from 'node:fs';
|
|
17
|
+
import chalk from 'chalk';
|
|
18
|
+
import { loadConfig, saveConfig, getConfigValue, setConfigValue, resetConfig, CONFIG_FILE, VALID_CONFIG_KEYS, CONFIG_DEFAULTS, isValidConfigKey, } from '../lib/config.js';
|
|
19
|
+
import { detectOutputMode, printJson, printQuiet } from '../lib/output.js';
|
|
20
|
+
import { handleError } from '../lib/errors.js';
|
|
21
|
+
import { CLIError } from '../lib/errors.js';
|
|
22
|
+
export function registerConfigCommand(program) {
|
|
23
|
+
const configCmd = program
|
|
24
|
+
.command('config')
|
|
25
|
+
.description('Manage CLI configuration');
|
|
26
|
+
// agent-media config set <key> <value>
|
|
27
|
+
configCmd
|
|
28
|
+
.command('set <key> <value>')
|
|
29
|
+
.description('Set a configuration value')
|
|
30
|
+
.action((key, value) => {
|
|
31
|
+
const globalOpts = program.opts();
|
|
32
|
+
const mode = detectOutputMode(globalOpts);
|
|
33
|
+
try {
|
|
34
|
+
if (!isValidConfigKey(key)) {
|
|
35
|
+
throw new CLIError(`Unknown config key: "${key}"`, {
|
|
36
|
+
code: 'INVALID_CONFIG_KEY',
|
|
37
|
+
suggestion: `Valid keys: ${VALID_CONFIG_KEYS.join(', ')}`,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
// Validate specific keys
|
|
41
|
+
if (key === 'output_format' && !['human', 'json', 'quiet'].includes(value)) {
|
|
42
|
+
throw new CLIError(`Invalid output_format: "${value}"`, {
|
|
43
|
+
code: 'INVALID_CONFIG_VALUE',
|
|
44
|
+
suggestion: 'Valid values: human, json, quiet',
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
if (key === 'auto_open_browser' && !['true', 'false'].includes(value)) {
|
|
48
|
+
throw new CLIError(`Invalid auto_open_browser: "${value}"`, {
|
|
49
|
+
code: 'INVALID_CONFIG_VALUE',
|
|
50
|
+
suggestion: 'Valid values: true, false',
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
// Coerce boolean values
|
|
54
|
+
const coerced = key === 'auto_open_browser' ? value === 'true' : value;
|
|
55
|
+
setConfigValue(key, coerced);
|
|
56
|
+
switch (mode) {
|
|
57
|
+
case 'json':
|
|
58
|
+
printJson({ key, value: coerced, success: true });
|
|
59
|
+
break;
|
|
60
|
+
case 'quiet':
|
|
61
|
+
printQuiet(String(coerced));
|
|
62
|
+
break;
|
|
63
|
+
default:
|
|
64
|
+
console.log(chalk.green(`\u2713 Set ${chalk.bold(key)} = ${coerced}`));
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
handleError(error);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
// agent-media config get <key>
|
|
73
|
+
configCmd
|
|
74
|
+
.command('get <key>')
|
|
75
|
+
.description('Get a configuration value')
|
|
76
|
+
.action((key) => {
|
|
77
|
+
const globalOpts = program.opts();
|
|
78
|
+
const mode = detectOutputMode(globalOpts);
|
|
79
|
+
try {
|
|
80
|
+
if (!isValidConfigKey(key)) {
|
|
81
|
+
throw new CLIError(`Unknown config key: "${key}"`, {
|
|
82
|
+
code: 'INVALID_CONFIG_KEY',
|
|
83
|
+
suggestion: `Valid keys: ${VALID_CONFIG_KEYS.join(', ')}`,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
const value = getConfigValue(key);
|
|
87
|
+
const defaultValue = CONFIG_DEFAULTS[key];
|
|
88
|
+
const effectiveValue = value ?? defaultValue;
|
|
89
|
+
switch (mode) {
|
|
90
|
+
case 'json':
|
|
91
|
+
printJson({
|
|
92
|
+
key,
|
|
93
|
+
value: effectiveValue ?? null,
|
|
94
|
+
is_default: value === undefined,
|
|
95
|
+
});
|
|
96
|
+
break;
|
|
97
|
+
case 'quiet':
|
|
98
|
+
printQuiet(effectiveValue !== undefined ? String(effectiveValue) : '');
|
|
99
|
+
break;
|
|
100
|
+
default:
|
|
101
|
+
if (value !== undefined) {
|
|
102
|
+
console.log(`${chalk.bold(key)} = ${value}`);
|
|
103
|
+
}
|
|
104
|
+
else if (defaultValue !== undefined) {
|
|
105
|
+
console.log(`${chalk.bold(key)} = ${defaultValue} ${chalk.dim('(default)')}`);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
console.log(`${chalk.bold(key)} = ${chalk.dim('(not set)')}`);
|
|
109
|
+
}
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
handleError(error);
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
// agent-media config list
|
|
118
|
+
configCmd
|
|
119
|
+
.command('list')
|
|
120
|
+
.description('List all configuration values')
|
|
121
|
+
.action(() => {
|
|
122
|
+
const globalOpts = program.opts();
|
|
123
|
+
const mode = detectOutputMode(globalOpts);
|
|
124
|
+
try {
|
|
125
|
+
const config = loadConfig();
|
|
126
|
+
switch (mode) {
|
|
127
|
+
case 'json': {
|
|
128
|
+
// Merge defaults with current config for a complete picture
|
|
129
|
+
const merged = {};
|
|
130
|
+
for (const key of VALID_CONFIG_KEYS) {
|
|
131
|
+
merged[key] = config[key] ?? CONFIG_DEFAULTS[key] ?? null;
|
|
132
|
+
}
|
|
133
|
+
printJson(merged);
|
|
134
|
+
break;
|
|
135
|
+
}
|
|
136
|
+
case 'quiet': {
|
|
137
|
+
const lines = [];
|
|
138
|
+
for (const key of VALID_CONFIG_KEYS) {
|
|
139
|
+
const val = config[key] ?? CONFIG_DEFAULTS[key];
|
|
140
|
+
lines.push(`${key}=${val !== undefined ? val : ''}`);
|
|
141
|
+
}
|
|
142
|
+
printQuiet(lines);
|
|
143
|
+
break;
|
|
144
|
+
}
|
|
145
|
+
default: {
|
|
146
|
+
console.log();
|
|
147
|
+
console.log(chalk.bold(' Configuration'));
|
|
148
|
+
console.log(chalk.dim(` ${CONFIG_FILE}`));
|
|
149
|
+
console.log();
|
|
150
|
+
for (const key of VALID_CONFIG_KEYS) {
|
|
151
|
+
const value = config[key];
|
|
152
|
+
const defaultValue = CONFIG_DEFAULTS[key];
|
|
153
|
+
if (value !== undefined) {
|
|
154
|
+
console.log(` ${chalk.bold(key)} = ${value}`);
|
|
155
|
+
}
|
|
156
|
+
else if (defaultValue !== undefined) {
|
|
157
|
+
console.log(` ${chalk.bold(key)} = ${chalk.dim(String(defaultValue))} ${chalk.dim('(default)')}`);
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
console.log(` ${chalk.bold(key)} = ${chalk.dim('(not set)')}`);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
console.log();
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
catch (error) {
|
|
169
|
+
handleError(error);
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
// agent-media config reset
|
|
173
|
+
configCmd
|
|
174
|
+
.command('reset')
|
|
175
|
+
.description('Reset all configuration to defaults')
|
|
176
|
+
.action(() => {
|
|
177
|
+
const globalOpts = program.opts();
|
|
178
|
+
const mode = detectOutputMode(globalOpts);
|
|
179
|
+
try {
|
|
180
|
+
resetConfig();
|
|
181
|
+
switch (mode) {
|
|
182
|
+
case 'json':
|
|
183
|
+
printJson({ success: true, message: 'Configuration reset to defaults.' });
|
|
184
|
+
break;
|
|
185
|
+
case 'quiet':
|
|
186
|
+
printQuiet('reset');
|
|
187
|
+
break;
|
|
188
|
+
default:
|
|
189
|
+
console.log(chalk.green('\u2713 Configuration reset to defaults.'));
|
|
190
|
+
break;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
handleError(error);
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
// agent-media config export
|
|
198
|
+
configCmd
|
|
199
|
+
.command('export')
|
|
200
|
+
.description('Output full configuration as JSON to stdout')
|
|
201
|
+
.action(() => {
|
|
202
|
+
const globalOpts = program.opts();
|
|
203
|
+
const mode = detectOutputMode(globalOpts);
|
|
204
|
+
try {
|
|
205
|
+
const config = loadConfig();
|
|
206
|
+
// Build a complete view: merge defaults with stored values
|
|
207
|
+
const merged = {};
|
|
208
|
+
for (const key of VALID_CONFIG_KEYS) {
|
|
209
|
+
merged[key] = config[key] ?? CONFIG_DEFAULTS[key] ?? null;
|
|
210
|
+
}
|
|
211
|
+
switch (mode) {
|
|
212
|
+
case 'json':
|
|
213
|
+
case 'quiet':
|
|
214
|
+
// Both modes output raw JSON for piping
|
|
215
|
+
printJson(merged);
|
|
216
|
+
break;
|
|
217
|
+
default:
|
|
218
|
+
// Human mode: also output raw JSON (this is the export)
|
|
219
|
+
printJson(merged);
|
|
220
|
+
break;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
catch (error) {
|
|
224
|
+
handleError(error);
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
// agent-media config import <file>
|
|
228
|
+
configCmd
|
|
229
|
+
.command('import <file>')
|
|
230
|
+
.description('Import configuration from a JSON file, merging into current config')
|
|
231
|
+
.action((file) => {
|
|
232
|
+
const globalOpts = program.opts();
|
|
233
|
+
const mode = detectOutputMode(globalOpts);
|
|
234
|
+
try {
|
|
235
|
+
// 1. Read and parse the file
|
|
236
|
+
let raw;
|
|
237
|
+
try {
|
|
238
|
+
raw = readFileSync(file, 'utf-8');
|
|
239
|
+
}
|
|
240
|
+
catch (err) {
|
|
241
|
+
const msg = err instanceof Error ? err.message : 'Unknown read error';
|
|
242
|
+
throw new CLIError(`Failed to read file: ${msg}`, {
|
|
243
|
+
code: 'FILE_READ_ERROR',
|
|
244
|
+
suggestion: 'Verify the file path exists and is readable.',
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
let imported;
|
|
248
|
+
try {
|
|
249
|
+
imported = JSON.parse(raw);
|
|
250
|
+
}
|
|
251
|
+
catch {
|
|
252
|
+
throw new CLIError('File is not valid JSON.', {
|
|
253
|
+
code: 'INVALID_JSON',
|
|
254
|
+
suggestion: 'Ensure the file contains a valid JSON object.',
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
// 2. Validate schema: must be a plain object
|
|
258
|
+
if (imported === null || typeof imported !== 'object' || Array.isArray(imported)) {
|
|
259
|
+
throw new CLIError('Imported config must be a JSON object.', {
|
|
260
|
+
code: 'INVALID_CONFIG_SCHEMA',
|
|
261
|
+
suggestion: 'The file should contain a JSON object like { "key": "value" }.',
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
const importedObj = imported;
|
|
265
|
+
// 3. Validate all keys are recognized config keys
|
|
266
|
+
const unknownKeys = [];
|
|
267
|
+
for (const key of Object.keys(importedObj)) {
|
|
268
|
+
if (!isValidConfigKey(key)) {
|
|
269
|
+
unknownKeys.push(key);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
if (unknownKeys.length > 0) {
|
|
273
|
+
throw new CLIError(`Unknown config key${unknownKeys.length > 1 ? 's' : ''}: ${unknownKeys.join(', ')}`, {
|
|
274
|
+
code: 'INVALID_CONFIG_KEY',
|
|
275
|
+
suggestion: `Valid keys: ${VALID_CONFIG_KEYS.join(', ')}`,
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
// 4. Validate individual values
|
|
279
|
+
if ('output_format' in importedObj) {
|
|
280
|
+
const val = importedObj['output_format'];
|
|
281
|
+
if (typeof val !== 'string' || !['human', 'json', 'quiet'].includes(val)) {
|
|
282
|
+
throw new CLIError(`Invalid output_format: "${val}"`, {
|
|
283
|
+
code: 'INVALID_CONFIG_VALUE',
|
|
284
|
+
suggestion: 'Valid values: human, json, quiet',
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
if ('auto_open_browser' in importedObj) {
|
|
289
|
+
const val = importedObj['auto_open_browser'];
|
|
290
|
+
if (typeof val !== 'boolean' && val !== 'true' && val !== 'false') {
|
|
291
|
+
throw new CLIError(`Invalid auto_open_browser: "${val}"`, {
|
|
292
|
+
code: 'INVALID_CONFIG_VALUE',
|
|
293
|
+
suggestion: 'Valid values: true, false',
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
// Normalize string booleans
|
|
297
|
+
if (typeof val === 'string') {
|
|
298
|
+
importedObj['auto_open_browser'] = val === 'true';
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
// 5. Merge into current config and save
|
|
302
|
+
const current = loadConfig();
|
|
303
|
+
const merged = { ...current, ...importedObj };
|
|
304
|
+
saveConfig(merged);
|
|
305
|
+
const importedKeyCount = Object.keys(importedObj).length;
|
|
306
|
+
switch (mode) {
|
|
307
|
+
case 'json':
|
|
308
|
+
printJson({
|
|
309
|
+
success: true,
|
|
310
|
+
keys_imported: importedKeyCount,
|
|
311
|
+
config: merged,
|
|
312
|
+
});
|
|
313
|
+
break;
|
|
314
|
+
case 'quiet':
|
|
315
|
+
printQuiet(String(importedKeyCount));
|
|
316
|
+
break;
|
|
317
|
+
default:
|
|
318
|
+
console.log(chalk.green(`\u2713 Imported ${importedKeyCount} config key${importedKeyCount !== 1 ? 's' : ''} from ${chalk.bold(file)}`));
|
|
319
|
+
break;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
catch (error) {
|
|
323
|
+
handleError(error);
|
|
324
|
+
}
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `agent-media credits` command group.
|
|
3
|
+
*
|
|
4
|
+
* Displays the authenticated user's credit balance with a breakdown
|
|
5
|
+
* of monthly remaining, purchased, and total credits. Shows plan tier
|
|
6
|
+
* context and uses color-coded output to indicate credit health.
|
|
7
|
+
*
|
|
8
|
+
* Subcommands:
|
|
9
|
+
* - `agent-media credits` (default) -- show balance
|
|
10
|
+
* - `agent-media credits estimate <model>` -- estimate cost for a generation
|
|
11
|
+
* - `agent-media credits history` -- show credit transaction history
|
|
12
|
+
*
|
|
13
|
+
* Requires a valid API key. If not logged in, prompts the user to
|
|
14
|
+
* authenticate via `agent-media login`.
|
|
15
|
+
*/
|
|
16
|
+
import type { Command } from 'commander';
|
|
17
|
+
export declare function registerCreditsCommand(program: Command): void;
|
|
18
|
+
//# sourceMappingURL=credits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credits.d.ts","sourceRoot":"","sources":["../../src/commands/credits.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8BzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmkB7D"}
|