@kernel.chat/kbot 2.12.0 → 2.13.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/changelog.d.ts +21 -0
- package/dist/changelog.d.ts.map +1 -0
- package/dist/changelog.js +204 -0
- package/dist/changelog.js.map +1 -0
- package/dist/cli.js +43 -114
- package/dist/cli.js.map +1 -1
- package/dist/completions.d.ts +2 -0
- package/dist/completions.d.ts.map +1 -0
- package/dist/completions.js +526 -0
- package/dist/completions.js.map +1 -0
- package/dist/doctor.d.ts +15 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +381 -0
- package/dist/doctor.js.map +1 -0
- package/dist/ide/acp-server.js +1 -1
- package/dist/tutorial.d.ts +3 -0
- package/dist/tutorial.d.ts.map +1 -0
- package/dist/tutorial.js +195 -0
- package/dist/tutorial.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,526 @@
|
|
|
1
|
+
// K:BOT Shell Completions — bash, zsh, fish tab-completion scripts
|
|
2
|
+
//
|
|
3
|
+
// Usage:
|
|
4
|
+
// $ kbot completions bash >> ~/.bashrc
|
|
5
|
+
// $ kbot completions zsh >> ~/.zshrc
|
|
6
|
+
// $ kbot completions fish > ~/.config/fish/completions/kbot.fish
|
|
7
|
+
// ── Completion data ──
|
|
8
|
+
const SUBCOMMANDS = [
|
|
9
|
+
'auth',
|
|
10
|
+
'byok',
|
|
11
|
+
'local',
|
|
12
|
+
'ollama',
|
|
13
|
+
'openclaw',
|
|
14
|
+
'serve',
|
|
15
|
+
'ide',
|
|
16
|
+
'agents',
|
|
17
|
+
'doctor',
|
|
18
|
+
'update',
|
|
19
|
+
'pull',
|
|
20
|
+
'cloud',
|
|
21
|
+
'watch',
|
|
22
|
+
'voice',
|
|
23
|
+
'export',
|
|
24
|
+
'plugins',
|
|
25
|
+
'completions',
|
|
26
|
+
];
|
|
27
|
+
const IDE_SUBCOMMANDS = ['mcp', 'acp', 'status'];
|
|
28
|
+
const GLOBAL_OPTIONS = [
|
|
29
|
+
'--agent',
|
|
30
|
+
'--model',
|
|
31
|
+
'--stream',
|
|
32
|
+
'--pipe',
|
|
33
|
+
'--json',
|
|
34
|
+
'--quiet',
|
|
35
|
+
'--yes',
|
|
36
|
+
'--resume',
|
|
37
|
+
'--computer-use',
|
|
38
|
+
'--thinking',
|
|
39
|
+
'--thinking-budget',
|
|
40
|
+
'--self-eval',
|
|
41
|
+
'--architect',
|
|
42
|
+
'--safe',
|
|
43
|
+
'--strict',
|
|
44
|
+
'--help',
|
|
45
|
+
'--version',
|
|
46
|
+
];
|
|
47
|
+
const GLOBAL_SHORT_OPTIONS = [
|
|
48
|
+
'-a',
|
|
49
|
+
'-m',
|
|
50
|
+
'-s',
|
|
51
|
+
'-p',
|
|
52
|
+
'-y',
|
|
53
|
+
'-q',
|
|
54
|
+
'-t',
|
|
55
|
+
'-h',
|
|
56
|
+
];
|
|
57
|
+
// REPL slash commands — not used for shell completions (these are typed
|
|
58
|
+
// inside the interactive REPL, not on the shell command line), but kept
|
|
59
|
+
// here as a reference for the full command surface.
|
|
60
|
+
const _SLASH_COMMANDS = [
|
|
61
|
+
'/help',
|
|
62
|
+
'/save',
|
|
63
|
+
'/resume',
|
|
64
|
+
'/clear',
|
|
65
|
+
'/agent',
|
|
66
|
+
'/model',
|
|
67
|
+
'/plan',
|
|
68
|
+
'/evolve',
|
|
69
|
+
'/quit',
|
|
70
|
+
'/exit',
|
|
71
|
+
'/context',
|
|
72
|
+
'/memory',
|
|
73
|
+
'/learn',
|
|
74
|
+
'/stats',
|
|
75
|
+
'/remember',
|
|
76
|
+
'/compact',
|
|
77
|
+
'/sessions',
|
|
78
|
+
'/delete-session',
|
|
79
|
+
'/train',
|
|
80
|
+
'/thinking',
|
|
81
|
+
'/self-eval',
|
|
82
|
+
'/health',
|
|
83
|
+
'/providers',
|
|
84
|
+
'/map-elites',
|
|
85
|
+
'/confidence',
|
|
86
|
+
'/skills',
|
|
87
|
+
'/effort',
|
|
88
|
+
'/handoff',
|
|
89
|
+
'/blackboard',
|
|
90
|
+
'/trust',
|
|
91
|
+
'/checkpoint',
|
|
92
|
+
'/anticipate',
|
|
93
|
+
'/identity',
|
|
94
|
+
'/hypothesize',
|
|
95
|
+
'/counterfactual',
|
|
96
|
+
'/strategy',
|
|
97
|
+
'/drives',
|
|
98
|
+
'/motivation',
|
|
99
|
+
'/architect',
|
|
100
|
+
'/graph',
|
|
101
|
+
'/worktree',
|
|
102
|
+
'/permission',
|
|
103
|
+
'/plugins',
|
|
104
|
+
'/dashboard',
|
|
105
|
+
'/build',
|
|
106
|
+
'/local',
|
|
107
|
+
'/ollama',
|
|
108
|
+
'/openclaw',
|
|
109
|
+
'/models',
|
|
110
|
+
'/provider',
|
|
111
|
+
'/mimic',
|
|
112
|
+
'/watch',
|
|
113
|
+
'/voice',
|
|
114
|
+
'/export',
|
|
115
|
+
'/test',
|
|
116
|
+
'/rate-limit',
|
|
117
|
+
'/matrix',
|
|
118
|
+
'/tutorial',
|
|
119
|
+
];
|
|
120
|
+
void _SLASH_COMMANDS;
|
|
121
|
+
const AGENT_NAMES = [
|
|
122
|
+
'kernel',
|
|
123
|
+
'researcher',
|
|
124
|
+
'coder',
|
|
125
|
+
'writer',
|
|
126
|
+
'analyst',
|
|
127
|
+
'aesthete',
|
|
128
|
+
'guardian',
|
|
129
|
+
'curator',
|
|
130
|
+
'strategist',
|
|
131
|
+
'creative',
|
|
132
|
+
'developer',
|
|
133
|
+
'hacker',
|
|
134
|
+
'operator',
|
|
135
|
+
'dreamer',
|
|
136
|
+
'physicist',
|
|
137
|
+
'mathematician',
|
|
138
|
+
'chemist',
|
|
139
|
+
'biologist',
|
|
140
|
+
'economist',
|
|
141
|
+
'linguist',
|
|
142
|
+
'historian',
|
|
143
|
+
'philosopher',
|
|
144
|
+
'psychologist',
|
|
145
|
+
'engineer',
|
|
146
|
+
'medic',
|
|
147
|
+
'legal',
|
|
148
|
+
'data',
|
|
149
|
+
'security',
|
|
150
|
+
'devops',
|
|
151
|
+
'educator',
|
|
152
|
+
'musician',
|
|
153
|
+
'session',
|
|
154
|
+
'scholar',
|
|
155
|
+
'auditor',
|
|
156
|
+
'benchmarker',
|
|
157
|
+
];
|
|
158
|
+
// ── Generators ──
|
|
159
|
+
function generateBash() {
|
|
160
|
+
const subcommands = SUBCOMMANDS.join(' ');
|
|
161
|
+
const ideSubcommands = IDE_SUBCOMMANDS.join(' ');
|
|
162
|
+
const globalOptions = [...GLOBAL_OPTIONS, ...GLOBAL_SHORT_OPTIONS].join(' ');
|
|
163
|
+
const agents = AGENT_NAMES.join(' ');
|
|
164
|
+
return `# kbot shell completions for bash
|
|
165
|
+
# Add to ~/.bashrc: eval "$(kbot completions bash)"
|
|
166
|
+
|
|
167
|
+
_kbot_completions() {
|
|
168
|
+
local cur prev words cword
|
|
169
|
+
_init_completion || return
|
|
170
|
+
|
|
171
|
+
local subcommands="${subcommands}"
|
|
172
|
+
local global_opts="${globalOptions}"
|
|
173
|
+
local agents="${agents}"
|
|
174
|
+
local ide_subcommands="${ideSubcommands}"
|
|
175
|
+
|
|
176
|
+
# Complete subcommands and options at top level
|
|
177
|
+
if [[ \${cword} -eq 1 ]]; then
|
|
178
|
+
COMPREPLY=( $(compgen -W "\${subcommands} \${global_opts}" -- "\${cur}") )
|
|
179
|
+
return
|
|
180
|
+
fi
|
|
181
|
+
|
|
182
|
+
# Context-sensitive completion
|
|
183
|
+
case "\${prev}" in
|
|
184
|
+
--agent|-a)
|
|
185
|
+
COMPREPLY=( $(compgen -W "\${agents}" -- "\${cur}") )
|
|
186
|
+
return
|
|
187
|
+
;;
|
|
188
|
+
--model|-m)
|
|
189
|
+
COMPREPLY=( $(compgen -W "auto sonnet haiku opus gpt-4o gpt-4o-mini gemini-pro" -- "\${cur}") )
|
|
190
|
+
return
|
|
191
|
+
;;
|
|
192
|
+
--resume)
|
|
193
|
+
# No completion for session IDs — user-specific
|
|
194
|
+
return
|
|
195
|
+
;;
|
|
196
|
+
--thinking-budget)
|
|
197
|
+
COMPREPLY=( $(compgen -W "5000 10000 20000 50000" -- "\${cur}") )
|
|
198
|
+
return
|
|
199
|
+
;;
|
|
200
|
+
completions)
|
|
201
|
+
COMPREPLY=( $(compgen -W "bash zsh fish" -- "\${cur}") )
|
|
202
|
+
return
|
|
203
|
+
;;
|
|
204
|
+
ide)
|
|
205
|
+
COMPREPLY=( $(compgen -W "\${ide_subcommands}" -- "\${cur}") )
|
|
206
|
+
return
|
|
207
|
+
;;
|
|
208
|
+
agents)
|
|
209
|
+
COMPREPLY=( $(compgen -W "\${agents}" -- "\${cur}") )
|
|
210
|
+
return
|
|
211
|
+
;;
|
|
212
|
+
plugins)
|
|
213
|
+
COMPREPLY=( $(compgen -W "list search install uninstall update" -- "\${cur}") )
|
|
214
|
+
return
|
|
215
|
+
;;
|
|
216
|
+
cloud)
|
|
217
|
+
COMPREPLY=( $(compgen -W "--token --off --status --push --pull" -- "\${cur}") )
|
|
218
|
+
return
|
|
219
|
+
;;
|
|
220
|
+
local|ollama)
|
|
221
|
+
COMPREPLY=( $(compgen -W "--model --list --off" -- "\${cur}") )
|
|
222
|
+
return
|
|
223
|
+
;;
|
|
224
|
+
serve)
|
|
225
|
+
COMPREPLY=( $(compgen -W "--port --token --computer-use" -- "\${cur}") )
|
|
226
|
+
return
|
|
227
|
+
;;
|
|
228
|
+
export)
|
|
229
|
+
COMPREPLY=( $(compgen -W "--format --output" -- "\${cur}") )
|
|
230
|
+
return
|
|
231
|
+
;;
|
|
232
|
+
--format|-f)
|
|
233
|
+
COMPREPLY=( $(compgen -W "md json html" -- "\${cur}") )
|
|
234
|
+
return
|
|
235
|
+
;;
|
|
236
|
+
esac
|
|
237
|
+
|
|
238
|
+
# After first word, offer options
|
|
239
|
+
COMPREPLY=( $(compgen -W "\${global_opts}" -- "\${cur}") )
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
complete -F _kbot_completions kbot
|
|
243
|
+
`;
|
|
244
|
+
}
|
|
245
|
+
function generateZsh() {
|
|
246
|
+
const subcommands = SUBCOMMANDS.map(s => `'${s}'`).join(' ');
|
|
247
|
+
const agents = AGENT_NAMES.map(a => `'${a}'`).join(' ');
|
|
248
|
+
return `# kbot shell completions for zsh
|
|
249
|
+
# Add to ~/.zshrc: eval "$(kbot completions zsh)"
|
|
250
|
+
|
|
251
|
+
_kbot() {
|
|
252
|
+
local -a subcommands global_opts agents ide_subcommands
|
|
253
|
+
|
|
254
|
+
subcommands=(
|
|
255
|
+
'auth:Configure your LLM API key'
|
|
256
|
+
'byok:Bring Your Own Key'
|
|
257
|
+
'local:Use local AI models'
|
|
258
|
+
'ollama:Alias for local'
|
|
259
|
+
'openclaw:Use OpenClaw gateway'
|
|
260
|
+
'serve:Start HTTP server'
|
|
261
|
+
'ide:Start IDE protocol server'
|
|
262
|
+
'agents:List available agents'
|
|
263
|
+
'doctor:Diagnose your setup'
|
|
264
|
+
'update:Update kbot'
|
|
265
|
+
'pull:Download Ollama models'
|
|
266
|
+
'cloud:Cloud sync settings'
|
|
267
|
+
'watch:Watch files for changes'
|
|
268
|
+
'voice:Start voice mode'
|
|
269
|
+
'export:Export a session'
|
|
270
|
+
'plugins:Manage plugins'
|
|
271
|
+
'completions:Generate shell completions'
|
|
272
|
+
)
|
|
273
|
+
|
|
274
|
+
agents=(${agents})
|
|
275
|
+
|
|
276
|
+
global_opts=(
|
|
277
|
+
'(-a --agent)'{-a,--agent}'[Force a specific agent]:agent:(${AGENT_NAMES.join(' ')})'
|
|
278
|
+
'(-m --model)'{-m,--model}'[Override AI model]:model:(auto sonnet haiku opus gpt-4o gpt-4o-mini gemini-pro)'
|
|
279
|
+
'(-s --stream)'{-s,--stream}'[Stream the response]'
|
|
280
|
+
'(-p --pipe)'{-p,--pipe}'[Pipe mode for scripting]'
|
|
281
|
+
'--json[JSON output for scripting]'
|
|
282
|
+
'(-y --yes)'{-y,--yes}'[Skip confirmation prompts]'
|
|
283
|
+
'(-q --quiet)'{-q,--quiet}'[Minimal output]'
|
|
284
|
+
'--resume[Resume a saved session]'
|
|
285
|
+
'--computer-use[Enable computer use tools]'
|
|
286
|
+
'(-t --thinking)'{-t,--thinking}'[Show AI reasoning steps]'
|
|
287
|
+
'--thinking-budget[Thinking token budget]:budget:(5000 10000 20000 50000)'
|
|
288
|
+
'--self-eval[Enable self-evaluation loop]'
|
|
289
|
+
'--architect[Architect mode]'
|
|
290
|
+
'--safe[Confirm destructive operations]'
|
|
291
|
+
'--strict[Confirm ALL operations]'
|
|
292
|
+
'(-h --help)'{-h,--help}'[Display help]'
|
|
293
|
+
'(-V --version)'{-V,--version}'[Display version]'
|
|
294
|
+
)
|
|
295
|
+
|
|
296
|
+
_arguments -C \\
|
|
297
|
+
$global_opts \\
|
|
298
|
+
'1: :->cmd' \\
|
|
299
|
+
'*:: :->args'
|
|
300
|
+
|
|
301
|
+
case $state in
|
|
302
|
+
cmd)
|
|
303
|
+
_describe 'command' subcommands
|
|
304
|
+
;;
|
|
305
|
+
args)
|
|
306
|
+
case $words[1] in
|
|
307
|
+
completions)
|
|
308
|
+
_values 'shell' bash zsh fish
|
|
309
|
+
;;
|
|
310
|
+
ide)
|
|
311
|
+
local -a ide_cmds
|
|
312
|
+
ide_cmds=(
|
|
313
|
+
'mcp:Start MCP server for VS Code, Cursor, Windsurf, Zed'
|
|
314
|
+
'acp:Start ACP server for JetBrains IDEs'
|
|
315
|
+
'status:Show IDE bridge status'
|
|
316
|
+
)
|
|
317
|
+
_describe 'ide command' ide_cmds
|
|
318
|
+
;;
|
|
319
|
+
agents)
|
|
320
|
+
_values 'agent' $agents
|
|
321
|
+
;;
|
|
322
|
+
plugins)
|
|
323
|
+
_values 'action' list search install uninstall update
|
|
324
|
+
;;
|
|
325
|
+
cloud)
|
|
326
|
+
_arguments \\
|
|
327
|
+
'--token[Set cloud sync token]:token:' \\
|
|
328
|
+
'--off[Disable cloud sync]' \\
|
|
329
|
+
'--status[Show sync status]' \\
|
|
330
|
+
'--push[Force push to cloud]' \\
|
|
331
|
+
'--pull[Force pull from cloud]'
|
|
332
|
+
;;
|
|
333
|
+
local|ollama)
|
|
334
|
+
_arguments \\
|
|
335
|
+
'--model[Set default local model]:model:' \\
|
|
336
|
+
'--list[List available models]' \\
|
|
337
|
+
'--off[Disable local mode]'
|
|
338
|
+
;;
|
|
339
|
+
serve)
|
|
340
|
+
_arguments \\
|
|
341
|
+
'(-p --port)'{-p,--port}'[Port to listen on]:port:' \\
|
|
342
|
+
'--token[Auth token]:token:' \\
|
|
343
|
+
'--computer-use[Enable computer use tools]'
|
|
344
|
+
;;
|
|
345
|
+
export)
|
|
346
|
+
_arguments \\
|
|
347
|
+
'(-f --format)'{-f,--format}'[Output format]:format:(md json html)' \\
|
|
348
|
+
'(-o --output)'{-o,--output}'[Output file path]:file:_files'
|
|
349
|
+
;;
|
|
350
|
+
pull)
|
|
351
|
+
_arguments \\
|
|
352
|
+
'--model[Pull a specific model]:model:'
|
|
353
|
+
;;
|
|
354
|
+
auth|byok)
|
|
355
|
+
_arguments \\
|
|
356
|
+
'--off[Disable provider]'
|
|
357
|
+
;;
|
|
358
|
+
openclaw)
|
|
359
|
+
_arguments \\
|
|
360
|
+
'--token[Gateway auth token]:token:' \\
|
|
361
|
+
'--off[Disable OpenClaw]'
|
|
362
|
+
;;
|
|
363
|
+
watch)
|
|
364
|
+
_arguments \\
|
|
365
|
+
'(-e --extensions)'{-e,--extensions}'[File extensions]:extensions:' \\
|
|
366
|
+
'--no-analyze[Disable analysis]'
|
|
367
|
+
;;
|
|
368
|
+
voice)
|
|
369
|
+
_arguments \\
|
|
370
|
+
'(-v --voice)'{-v,--voice}'[TTS voice name]:voice:' \\
|
|
371
|
+
'(-r --rate)'{-r,--rate}'[Speech rate (wpm)]:rate:'
|
|
372
|
+
;;
|
|
373
|
+
esac
|
|
374
|
+
;;
|
|
375
|
+
esac
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
compdef _kbot kbot
|
|
379
|
+
`;
|
|
380
|
+
}
|
|
381
|
+
function generateFish() {
|
|
382
|
+
const lines = [
|
|
383
|
+
'# kbot shell completions for fish',
|
|
384
|
+
'# Save to: ~/.config/fish/completions/kbot.fish',
|
|
385
|
+
'',
|
|
386
|
+
'# Disable file completions by default',
|
|
387
|
+
'complete -c kbot -f',
|
|
388
|
+
'',
|
|
389
|
+
'# Subcommands',
|
|
390
|
+
];
|
|
391
|
+
const subcommandDescs = {
|
|
392
|
+
auth: 'Configure your LLM API key',
|
|
393
|
+
byok: 'Bring Your Own Key',
|
|
394
|
+
local: 'Use local AI models',
|
|
395
|
+
ollama: 'Alias for local',
|
|
396
|
+
openclaw: 'Use OpenClaw gateway',
|
|
397
|
+
serve: 'Start HTTP server',
|
|
398
|
+
ide: 'Start IDE protocol server',
|
|
399
|
+
agents: 'List available agents',
|
|
400
|
+
doctor: 'Diagnose your setup',
|
|
401
|
+
update: 'Update kbot',
|
|
402
|
+
pull: 'Download Ollama models',
|
|
403
|
+
cloud: 'Cloud sync settings',
|
|
404
|
+
watch: 'Watch files for changes',
|
|
405
|
+
voice: 'Start voice mode',
|
|
406
|
+
export: 'Export a session',
|
|
407
|
+
plugins: 'Manage plugins',
|
|
408
|
+
completions: 'Generate shell completions',
|
|
409
|
+
};
|
|
410
|
+
for (const [cmd, desc] of Object.entries(subcommandDescs)) {
|
|
411
|
+
lines.push(`complete -c kbot -n '__fish_use_subcommand' -a '${cmd}' -d '${desc}'`);
|
|
412
|
+
}
|
|
413
|
+
lines.push('');
|
|
414
|
+
lines.push('# Global options');
|
|
415
|
+
const optionDescs = [
|
|
416
|
+
{ short: 'a', long: 'agent', desc: 'Force a specific agent', arg: 'agent' },
|
|
417
|
+
{ short: 'm', long: 'model', desc: 'Override AI model', arg: 'model' },
|
|
418
|
+
{ short: 's', long: 'stream', desc: 'Stream the response' },
|
|
419
|
+
{ short: 'p', long: 'pipe', desc: 'Pipe mode for scripting' },
|
|
420
|
+
{ long: 'json', desc: 'JSON output for scripting' },
|
|
421
|
+
{ short: 'y', long: 'yes', desc: 'Skip confirmation prompts' },
|
|
422
|
+
{ short: 'q', long: 'quiet', desc: 'Minimal output' },
|
|
423
|
+
{ long: 'resume', desc: 'Resume a saved session' },
|
|
424
|
+
{ long: 'computer-use', desc: 'Enable computer use tools' },
|
|
425
|
+
{ short: 't', long: 'thinking', desc: 'Show AI reasoning steps' },
|
|
426
|
+
{ long: 'thinking-budget', desc: 'Thinking token budget', arg: 'tokens' },
|
|
427
|
+
{ long: 'self-eval', desc: 'Enable self-evaluation loop' },
|
|
428
|
+
{ long: 'architect', desc: 'Architect mode' },
|
|
429
|
+
{ long: 'safe', desc: 'Confirm destructive operations' },
|
|
430
|
+
{ long: 'strict', desc: 'Confirm ALL operations' },
|
|
431
|
+
];
|
|
432
|
+
for (const opt of optionDescs) {
|
|
433
|
+
let parts = `complete -c kbot -l '${opt.long}'`;
|
|
434
|
+
if (opt.short)
|
|
435
|
+
parts += ` -s '${opt.short}'`;
|
|
436
|
+
parts += ` -d '${opt.desc}'`;
|
|
437
|
+
if (opt.arg)
|
|
438
|
+
parts += ` -r`;
|
|
439
|
+
lines.push(parts);
|
|
440
|
+
}
|
|
441
|
+
lines.push('');
|
|
442
|
+
lines.push('# Agent names for --agent');
|
|
443
|
+
for (const agent of AGENT_NAMES) {
|
|
444
|
+
lines.push(`complete -c kbot -n '__fish_seen_argument -l agent -s a' -a '${agent}'`);
|
|
445
|
+
}
|
|
446
|
+
lines.push('');
|
|
447
|
+
lines.push('# Model names for --model');
|
|
448
|
+
const models = ['auto', 'sonnet', 'haiku', 'opus', 'gpt-4o', 'gpt-4o-mini', 'gemini-pro'];
|
|
449
|
+
for (const model of models) {
|
|
450
|
+
lines.push(`complete -c kbot -n '__fish_seen_argument -l model -s m' -a '${model}'`);
|
|
451
|
+
}
|
|
452
|
+
lines.push('');
|
|
453
|
+
lines.push('# completions subcommand');
|
|
454
|
+
for (const shell of ['bash', 'zsh', 'fish']) {
|
|
455
|
+
lines.push(`complete -c kbot -n '__fish_seen_subcommand_from completions' -a '${shell}' -d '${shell} completions'`);
|
|
456
|
+
}
|
|
457
|
+
lines.push('');
|
|
458
|
+
lines.push('# ide subcommands');
|
|
459
|
+
const ideDescs = {
|
|
460
|
+
mcp: 'Start MCP server for VS Code, Cursor, Windsurf, Zed',
|
|
461
|
+
acp: 'Start ACP server for JetBrains IDEs',
|
|
462
|
+
status: 'Show IDE bridge status',
|
|
463
|
+
};
|
|
464
|
+
for (const [cmd, desc] of Object.entries(ideDescs)) {
|
|
465
|
+
lines.push(`complete -c kbot -n '__fish_seen_subcommand_from ide' -a '${cmd}' -d '${desc}'`);
|
|
466
|
+
}
|
|
467
|
+
lines.push('');
|
|
468
|
+
lines.push('# agents subcommand — complete with agent names');
|
|
469
|
+
for (const agent of AGENT_NAMES) {
|
|
470
|
+
lines.push(`complete -c kbot -n '__fish_seen_subcommand_from agents' -a '${agent}'`);
|
|
471
|
+
}
|
|
472
|
+
lines.push('');
|
|
473
|
+
lines.push('# plugins subcommand');
|
|
474
|
+
for (const action of ['list', 'search', 'install', 'uninstall', 'update']) {
|
|
475
|
+
lines.push(`complete -c kbot -n '__fish_seen_subcommand_from plugins' -a '${action}' -d '${action} plugins'`);
|
|
476
|
+
}
|
|
477
|
+
lines.push('');
|
|
478
|
+
lines.push('# cloud subcommand options');
|
|
479
|
+
for (const [opt, desc] of Object.entries({
|
|
480
|
+
'--token': 'Set cloud sync token',
|
|
481
|
+
'--off': 'Disable cloud sync',
|
|
482
|
+
'--status': 'Show sync status',
|
|
483
|
+
'--push': 'Force push to cloud',
|
|
484
|
+
'--pull': 'Force pull from cloud',
|
|
485
|
+
})) {
|
|
486
|
+
lines.push(`complete -c kbot -n '__fish_seen_subcommand_from cloud' -l '${opt.slice(2)}' -d '${desc}'`);
|
|
487
|
+
}
|
|
488
|
+
lines.push('');
|
|
489
|
+
lines.push('# local/ollama subcommand options');
|
|
490
|
+
for (const [opt, desc] of Object.entries({
|
|
491
|
+
'--model': 'Set default local model',
|
|
492
|
+
'--list': 'List available models',
|
|
493
|
+
'--off': 'Disable local mode',
|
|
494
|
+
})) {
|
|
495
|
+
lines.push(`complete -c kbot -n '__fish_seen_subcommand_from local ollama' -l '${opt.slice(2)}' -d '${desc}'`);
|
|
496
|
+
}
|
|
497
|
+
lines.push('');
|
|
498
|
+
lines.push('# serve subcommand options');
|
|
499
|
+
for (const [opt, desc] of Object.entries({
|
|
500
|
+
'--port': 'Port to listen on',
|
|
501
|
+
'--token': 'Auth token',
|
|
502
|
+
'--computer-use': 'Enable computer use tools',
|
|
503
|
+
})) {
|
|
504
|
+
lines.push(`complete -c kbot -n '__fish_seen_subcommand_from serve' -l '${opt.slice(2)}' -d '${desc}'`);
|
|
505
|
+
}
|
|
506
|
+
lines.push('');
|
|
507
|
+
lines.push('# export subcommand options');
|
|
508
|
+
lines.push(`complete -c kbot -n '__fish_seen_subcommand_from export' -l 'format' -s 'f' -d 'Output format' -ra 'md json html'`);
|
|
509
|
+
lines.push(`complete -c kbot -n '__fish_seen_subcommand_from export' -l 'output' -s 'o' -d 'Output file path' -rF`);
|
|
510
|
+
lines.push('');
|
|
511
|
+
return lines.join('\n');
|
|
512
|
+
}
|
|
513
|
+
// ── Public API ──
|
|
514
|
+
export function generateCompletions(shell) {
|
|
515
|
+
switch (shell) {
|
|
516
|
+
case 'bash':
|
|
517
|
+
return generateBash();
|
|
518
|
+
case 'zsh':
|
|
519
|
+
return generateZsh();
|
|
520
|
+
case 'fish':
|
|
521
|
+
return generateFish();
|
|
522
|
+
default:
|
|
523
|
+
throw new Error(`Unsupported shell: ${shell}. Use bash, zsh, or fish.`);
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
//# sourceMappingURL=completions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completions.js","sourceRoot":"","sources":["../src/completions.ts"],"names":[],"mappings":"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"}
|
package/dist/doctor.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type CheckStatus = 'pass' | 'warn' | 'fail';
|
|
2
|
+
export interface CheckResult {
|
|
3
|
+
name: string;
|
|
4
|
+
status: CheckStatus;
|
|
5
|
+
message: string;
|
|
6
|
+
}
|
|
7
|
+
export interface DoctorReport {
|
|
8
|
+
checks: CheckResult[];
|
|
9
|
+
timestamp: string;
|
|
10
|
+
/** Overall: fail if any check fails, warn if any warns, pass otherwise */
|
|
11
|
+
overall: CheckStatus;
|
|
12
|
+
}
|
|
13
|
+
export declare function runDoctor(): Promise<DoctorReport>;
|
|
14
|
+
export declare function formatDoctorReport(report: DoctorReport): string;
|
|
15
|
+
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AA0BA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;AAElD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,WAAW,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,0EAA0E;IAC1E,OAAO,EAAE,WAAW,CAAA;CACrB;AA6SD,wBAAsB,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC,CA6CvD;AAkBD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CA+B/D"}
|